Pregunta

Me dieron 4 actividades que todos incluyen un xml-pie de página que contiene 4 botones (uno para cada actividad). Ahora me gustaría a onclicklisteners de configuración a estos botones (que es un menú hecho a sí mismo en el pie de página).

La pregunta es, ¿cómo se utiliza oyentes para que pueda reutilizar el código? Tengo dos ideas:

  1. Crear una clase que implementa OnClickListener y en todas las actividades que obtendría los botones y luego crear una nueva instancia de la clase oyente y hacer button.setOnClickListener (OnClickListener) El problema es que en la clase oyente, ¿Cómo puedo comprobar qué botón de llamada del evento? Y ¿cómo podría crear una intención de iniciar una actividad, por lo general yo haría: Intento = intención nuevos intención (FromActivity.this, ToAcitivty.class) Pero no tengo la referencia a FromActivity.

  2. Crea una clase base que se extiende desde la actividad y luego los 4 Actividades al se extenderán desde la clase base. Después me gustaría configurar los oyentes en la clase base. El problema aquí es que no puedo conseguir las referencias a los botones haciendo ButtonButton1 = (Button) findViewById (R.id.menu_button1); botón1 será nulo. Ni siquiera he llamado setEventView porque esto debe hacerse de la actividad no en la clase base.

¿Alguna idea?

Gracias

¿Fue útil?

Solución

El mismo código está aquí:

    public class MyClass extends Activity implements View.OnClickListener{
        btnA=(Button)findViewById(R.id.btnA);
        btnA.setOnClickListener(this);
        btnB=(Button)findViewById(R.id.btnB);
        btnB.setOnClickListener(this);


    }
    @Override
    public void onClick(View v)
    {
        Button clickedButton = (Button) v;
        switch (clickedButton.getId())
        {
            case R.id.btnA:
                Intent regIntent = new Intent(Home.this,Registration.class);
                startActivityIfNeeded(regIntent, 1);
                break;
            case R.id.btnB:
                //Some code
                break;
        }
    }

(editada como la primera línea original se divide en formato de código.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top