Problema con un boton
Publicado por Charly (69 intervenciones) el 10/10/2016 16:50:00
Hola, estoy haciendo una aplicación básica con un EditText para escribir un nombre, un CheckBox para decir si eres socio y un botón para que diga "Bienvenido "+txtNombre si es el CheckBox está activado y que cambie el color del EditText si no lo es.
Pues bien, el código no me da ningún error, pero al ejecutarlo en el movil la aplicacion se me cierra y me dice que la aplicación se ha detenido.
En la ventana de RUN, me aparece el siguiente error:
E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.ClassCastException: android.support.v7.widget.AppCompatButton cannot be cast to android.widget.CheckBox
at charly.izquierdofp.es.curso.CheckBoxActivity$1.onClick(CheckBoxActivity.java:34)
at android.view.View.performClick(View.java:4101)
at android.view.View$PerformClick.run(View.java:17082)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4940)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565)
at dalvik.system.NativeStart.main(Native Method)
Además, la colocación y la forma del botón no se modificarlos.
A continuación pongo el código que he escrito:
Pues bien, el código no me da ningún error, pero al ejecutarlo en el movil la aplicacion se me cierra y me dice que la aplicación se ha detenido.
En la ventana de RUN, me aparece el siguiente error:
E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.ClassCastException: android.support.v7.widget.AppCompatButton cannot be cast to android.widget.CheckBox
at charly.izquierdofp.es.curso.CheckBoxActivity$1.onClick(CheckBoxActivity.java:34)
at android.view.View.performClick(View.java:4101)
at android.view.View$PerformClick.run(View.java:17082)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4940)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565)
at dalvik.system.NativeStart.main(Native Method)
Además, la colocación y la forma del botón no se modificarlos.
A continuación pongo el código que he escrito:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class CheckBoxActivity extends AppCompatActivity {
CheckBox ChkSocio;
EditText txtNombre;
Button BtnSocio;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_checkbox);
txtNombre=(EditText)findViewById(R.id.txtNombre);
addListenerOnButton();
}
public void Si(View view) {
if (ChkSocio.isChecked()) {
Toast.makeText(this,"Bienvenido "+txtNombre,Toast.LENGTH_LONG).show();
}
}
public void addListenerOnButton() {
ChkSocio= (CheckBox) findViewById(R.id.ChkSocio);
BtnSocio = (Button) findViewById(R.id.BtnSocio);
BtnSocio.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
boolean isChecked = ((CheckBox)view).isChecked();
if (isChecked) {
Si(view);
} else {
txtNombre.setBackgroundColor(9);
}
}
});
}
}
Valora esta pregunta


0