Tener el mismo problema. El botón se inicializa en el momento adecuado pero, por algún motivo, se bloquea al hacer clic. El archivo xml dice que al controlador onClick le falta la actividad relacionada.
xml
<Button android:id="@+id/start_reg_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="216dp" android:onClick="onClick" android:text="@string/need_a_new_account" />Java
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_start); mRegBtn = (Button) findViewById(R.id.start_reg_btn); mRegBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent reg_intent = new Intent(StartActivity.this, RegisterActivity.class); startActivity(reg_intent); } }); }Muy nuevo en la programación de Android. Cualquier ayuda es apreciada
Hay dos formas de solucionar tu problema:
En su caso, ha declarado un controlador onClick para su botón en XML con esta línea:
android:onClick="onClick"Entonces, ahora debe crear un nombre de método onClick () en su actividad y hacer su código allí de esta manera:
public void onClick(View v) { Intent reg_intent = new Intent( StartActivity.this, RegisterActivity.class); startActivity(reg_intent); } android:onClick="onClick"y haz lo que ya hiciste:
mRegBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent reg_intent = new Intent( StartActivity.this, RegisterActivity.class); startActivity(reg_intent); } }); Entonces, el concepto principal es que no puedes usar android:onClick y setOnClickListener juntos. Tienes que usar uno a la vez.
android:onClick and `setOnClickListener` can not used simultaneous.
Para usar Android: onClick correctamente, puede consultar el enlace oficial
Intente obtener el contexto actual usando getContext() e impleméntelo como.
public void onClick(View v) { Intent reg_intent = new Intent(v.getContext(), RegisterActivity.class); v.getContext().startActivity(reg_intent); } Y defina onClick desde un archivo xml o defínalo mediante programación usando View.setOnClickListener . Ambos no pueden coexistir.