2015-10-27 2 views
1

Im работает с Butterknife, и у меня есть проблема, когда я хочу изменить фрагмент для другого, приложение терпит неудачу. Это мой первый фрагментButterknife и фрагменты

@Bind(R.id.tilNombre) TextInputLayout tilNombres; 
@Bind(R.id.tilApellido) TextInputLayout tilApellido; 
@Bind(R.id.tilDocumento) TextInputLayout tilDocumento ; 
@Bind(R.id.btnContinuar) Button btnContinuar; 
public RegistroFragment() { 
    // Required empty public constructor 
} 


@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    View view = inflater.inflate(R.layout.fragment_registro, container, false); 
    ButterKnife.bind(this, view); 
    return view; 
} 

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    app(); 
} 

void app(){ 
    tilNombres.setHint(getResources().getString(R.string.nombres)); 
    tilApellido.setHint(getResources().getString(R.string.apellidos)); 
    tilDocumento.setHint(getResources().getString(R.string.licencia)); 

    events(); 
} 

void events(){ 

    btnContinuar.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      RegistroTwoFragment registroTwoFragment = new RegistroTwoFragment(); 
      android.support.v4.app.FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); 
      fragmentTransaction.replace(R.id.contenedorRegistro, registroTwoFragment).commit(); 
     } 
    }); 
} 

В этом коде у меня нет никакой проблемы, проблема заключается в следующей части

public class RegistroTwoFragment extends Fragment { 

@Bind(R.id.tilCorreo) TextInputLayout tilCorreo; 
@Bind(R.id.tilClave) TextInputLayout tilClave; 
@Bind(R.id.btnRegistrar) TextInputLayout btnRegistrar; 
@Bind(R.id.tviRetroceder) TextInputLayout tviRetroceder; 

public RegistroTwoFragment() { 
    // Required empty public constructor 
} 


@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    View view = inflater.inflate(R.layout.fragment_registro_two, container, false); 
    ButterKnife.bind(this,view); 
    return view; 
} 

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    app(); 
} 

void app(){ 
    tilCorreo.setHint(getResources().getString(R.string.correo)); 
    tilClave.setHint(getResources().getString(R.string.contrasena)); 

    events(); 
} 

void events(){ 
    tviRetroceder.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      RegistroFragment registroFragment = new RegistroFragment(); 
      android.support.v4.app.FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); 
      fragmentTransaction.replace(R.id.contenedorRegistro, registroFragment).commit(); 
     } 
    }); 
} 

LogCat говорит: Не удается связать представления для com.example.aato. ciudadano.fragments.RegistroTwoFragment; кто-нибудь знает проблему?

ответ

0

Некоторые вещи, чтобы проверить:

  1. Убедитесь, что fragment_registro_two макет фактически содержит идентификаторы ресурсов, используемых в ваших @Bind(R.id.xyz) отчетности.
  2. Убедитесь, что вы используете правильный тип для каждой переменной, привязанной к каждому ресурсу. В вашем случае, вы уверены, что TextInputLayout действительно правильный тип для всех связанных ресурсов?
Смежные вопросы