Diverse attività che utilizzano lo stesso ascoltatore
-
30-09-2019 - |
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:
-
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.
-
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
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.