Domanda

ho ottenuto 4 attività che sono tutte dotate di un xml-footer che contiene 4 pulsanti (uno per ogni attività). Vorrei ora a onclicklisteners di impostazione ai questi pulsanti (si tratta di un menu self made nel piè di pagina).

La domanda è: come faccio a usare gli ascoltatori in modo che possa riutilizzare il codice? Ho due idee:

  1. Creare una classe che implementa onclicklistener e in ogni attività che avrei avuto i pulsanti e quindi creare una nuova istanza della classe ascoltatore e fanno button.setOnClickListener (onClickListener) Il problema è che nella classe ascoltatore, come potrei controllare quale pulsante chiamato l'evento? E come vorrei creare l'intenzione di avviare un'attività, di solito io farei: Intent = intento nuovi intenti (FromActivity.this, ToAcitivty.class) Ma non ho il riferimento a FromActivity.

  2. Creare una classe di base che si estende dall'attività e poi i 4 activies si estenderà dalla classe base. Vorrei poi configurare gli ascoltatori nella classe base. Il problema qui è che non riesco a ottenere i riferimenti ai pulsanti facendo Button Button1 = (Button) findViewById (R.id.menu_button1); pulsante1 sarà nullo. Non ho nemmeno chiamato setEventView perché questo dovrebbe essere fatto in l'attività non nella classe base.

Tutte le idee?

Grazie

È stato utile?

Soluzione

Lo stesso codice è qui:

    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;
        }
    }

(edito come prima riga originale è rotto sul formato di codice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top