Cannot find onClick method

So I get this error

11-15 16:55:40.617: E/AndroidRuntime(316): java.lang.IllegalStateException: Could not find a method ingresarBtnClick(View) in the activity class android.view.ContextThemeWrapper for onClick handler on view class android.widget.Button with id 'ingresarButton' 

This is my xml layout

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:weightSum="1" android:id="@+id/Login"> <TextView android:layout_width="wrap_content" android:id="@+id/textView1" android:textAppearance="?android:attr/textAppearanceLarge" android:text="Número de Lecturista" android:layout_height="wrap_content"></TextView> <EditText android:inputType="number" android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/numLecEditText" android:maxLength="4"> <requestFocus></requestFocus> </EditText> <TextView android:layout_width="wrap_content" android:id="@+id/textView2" android:textAppearance="?android:attr/textAppearanceLarge" android:layout_height="wrap_content" android:text="PIN"></TextView> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="number" android:password="true" android:id="@+id/pinEditText" android:maxLength="4"></EditText> <TableRow android:id="@+id/tableRow1" android:layout_width="match_parent" android:layout_height="wrap_content"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Ingresar" android:id="@+id/ingresarButton" android:onClick="ingresarBtnClick"></Button> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Salir" android:id="@+id/salirButton" android:onClick="salirBtnClick"></Button> <Button android:id="@+id/opcionesButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Opciones" android:onClick="opcionesBtnClick" ></Button> </TableRow> </LinearLayout> 

And this is my code

 import android.app.Dialog; import android.view.View; import android.widget.EditText; public class FormaLogin extends Dialog { SisLec sisLec; public FormaLogin(SisLec _sisLec) { super(_sisLec); sisLec = _sisLec; setTitle("Identificación de Lecturista"); } public void mostrar() { setContentView(R.layout.login); show(); } public void ingresarBtnClick(View view) { EditText numLecTxt = (EditText) sisLec.findViewById(R.id.numLecEditText); EditText pinTxt = (EditText) sisLec.findViewById(R.id.pinEditText); if(numLecTxt.getText().length() > 0) { if(pinTxt.getText().length() > 0) { if(numLecTxt.getText().equals("1337")) { if(pinTxt.getText().equals("8383")) { //sisLec.frmMantenimiento.mostrar(); } } else { HiloIdentificacion hiloIden = new HiloIdentificacion(); hiloIden.identificacion(numLecTxt.getText().toString(), pinTxt.getText().toString()); } } else sisLec.mensaje("Debe de ingresar su pin"); } else sisLec.mensaje("Debe de ingresar su número de Lecturista"); } public void salirBtnClick(View view) { sisLec.salir(); } public void opcionesBtnClick(View view) { // TODO: Agregar método que muestre la forma de Opciones } private class HiloIdentificacion extends Thread { private String usuario, pass; public synchronized void run() { try { sisLec.identificacion(usuario, pass); } catch(Exception e) { // TODO: Agregar registro de error } } public synchronized void identificacion(String _usuario, String _pass) { usuario = _usuario; pass = _pass; run(); } } } 

The method assigned to the "ingresarButton" button, "ingresarBtnClick (View view)", is there, since the Androir documentation offers http://developer.android.com/guide/topics/ui/ui-events.html but I get an error threshold.

Does he have anything that I show this layout in the dialog?

SisLec is my activity class

+6
source share
3 answers

android: onClick in xml directs the event to the method in action. But your method is not in action, its in your Dialog class. You will need to either redirect the call to an instance of the dialog box, or register as a registration code as an onClick receiver, rather than trying to set it in the layout.

+10
source

The onClick method must be in the Activity class.

+3
source

Try setContentView (sisLec.getLayoutInflater (). Inflate (R.layout.login, null));

Also read this: http://android-developers.blogspot.com/2012/05/using-dialogfragments.html

0
source

Source: https://habr.com/ru/post/901534/


All Articles