lo tanto, estoy consiguiendo este errorno puede encontrar el método onClick
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'
Este es mi diseño xml
<?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>
y este es mi código
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();
}
}
}
El método asignado al botón "ingresarButton", "ingresarBtnClick (Ver vista)" está allí, ya que la documentación de Androir sugiere http://developer.android.com/guide/topics/ui/ui-events.html pero al final estoy obteniendo el error.
¿Tiene algo que ver con mostrar este diseño en un cuadro de diálogo?
SisLec es mi clase de actividad
y quería tener mi clase de actividad de los más limpios posible, teniendo cada formulario/botón de diálogo onlick método en la clase del formulario/diálogo y no quería utilizar el OnClickListener visto lo fácil que era establecer el método Click gracias por la respuesta, no pudo encontrar a nadie que indicara esto – CJLopez
En realidad, enruta la llamada de función al contexto base adjunto al layoutinflater que lo crea, de cualquier forma es difícil decir cuál es el problema cuando está escrito en 4 diferentes la idiomas. –