¿Cómo llamar a un método definido en otra actividad / clase onClick () de un elemento del botón?

Estoy trabajando en el Layout de mi actividad principal con Android Studio (la API más baja es 15 ), y he definido algunos botones XML en él.

La idea del programa es editar una lista de palabras añadiéndola, mostrándola y borrándola con un conjunto de botones. ( Hay un EditText para agregar, pero eso no es importante para la pregunta ). Pero con la idea de la cohesión alta en la mente, he definido esta lista y los métodos que la manipulan en otra clase llana llamada WordList ( que todavía extiende la actividad ), y tan al intentar invocar la propiedad onClick de un botón, no puede encontrar ellos.

android:onClick="addWord" 

Método 'addWord' falta en 'MainActivity' o tiene firma incorrecta …

¿Hay alguna manera de hacer que el diseño, o el elemento individual punto ( o obtener su contexto de datos ) de otra clase, o es que en contra de toda la estructura de Android y debería ponerlo en su actividad original?

¿Está utilizando la firma correcta para el método?

Métodos define utilizando el atributo onClick debe cumplir los siguientes requisitos:

  • Debe ser público
  • Debe tener un valor de retorno vacío
  • Debe tener un objeto Ver como parámetro (que es la vista que se ha hecho clic)

me gusta

 public void addWord(View view) { //your action } 

Agregue un OnClickListener al botón en lugar de utilizar el atributo XML onClick.

https://stackoverflow.com/a/29479937/1496693

Pruebe esto, debería funcionar:

 Button btn = (Button) findViewById(R.id.mybutton); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addWord(v); } }); // some more code public void addWord(View v) { // does something very interesting } 

Implementación de XML

 <?xml version="1.0" encoding="utf-8"?> <!-- layout elements --> <Button android:id="@+id/mybutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Click me!" android:onClick="addWord" /> <!-- even more layout elements --> 
  • Android: Permiso denegado para / data / local / tmp / *
  • ¿Cómo puedo crear un mapa múltiple en Java en Android
  • LibGdx: Sprite no se dibuja cuando hay una etapa
  • Android - MediaPlayer's en Preparado Llamado incluso antes de que el flujo se prepare en Android 4.0+
  • Error: No se puede ejecutar la aplicación con el tarro de Firebase incluido
  • ¿Llamar a la función PHP desde android?
  • ¿Es posible detectar la salida de una aplicación?
  • No se puede crear una carpeta en el almacenamiento externo en android
  • La ventana emergente AutoCompleteTextView de Android se mueve tras mostrar
  • OAuth: App Id o redirect_uri no coincide con el código de autorización
  • Declaración global de variable en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.