chiamata stessi metodi dei pulsanti che si desidera lavorare stesso come
<LinearLayout ...>
<Button android:text="1" onClick="onButtonClicked" clickable="true" />
<Button android:text="2" onClick="onButtonClicked" clickable="true" />
<Button android:text="3" onClick="onButtonClicked" clickable="true" />
<Button android:text="4" onClick="onButtonClicked" clickable="true" />
</LinearLayout>
Sopra i quattro pulsanti hanno un testo diverso ma onClick hanno lo stesso metodo ora non è necessario ottenerli nella classe java g findViewById.
Nell'attività in cui viene mostrato il layout è sufficiente aggiungere un metodo di
public void onButtonClicked(View v){
// do whatever needs to be done. For example:
Toast.makeText(getApplicationContext(), ((Button) v).getText() + " clicked", Toast.LENGTH_SHORT).show();
}
Secondo metodo
Non c'è bisogno di ripetere lo stesso codice per tutti. È possibile provare un ascoltatore generica, come:
private OnClickListener genericClickListener= new OnClickListener() {
public void Click(View v) {
// do something
}
};
Poi tutto quello che dovete fare è registrare tutti i tre pulsanti per utilizzare questo genericClickListener. Cioè, all'interno onCreate()
,
Button firstbtn = (Button) findViewById(R.id.firstbtn);
Button secondbtn = (Button) findViewById(R.id.secondbtn);
Button thirdbtn = (Button) findViewById(R.id.thirdbtn);
firstbtn.setOnClickListener(genericClickListener);
secondbtn.setOnClickListener(genericClickListener);
thirdbtn.setOnClickListener(genericClickListener);
Terzo metodo
Creare una singola funzione/metodo e onClick di tutte le chiamate sul pulsante stesso Method/Function
.
creare un pulsante personalizzato estendendo classe Button e impostare Listener ci – Pragnani
o utilizzare XML per questo: Android: onClick = "someMethod" nel layout-xml, dare a tutti i pulsanti l'attributo onClick. Quindi, nella tua attività, crea un metodo: someMethod, e tutti i pulsanti lo chiameranno con un clic – cIph3r
Ma questi modi sono intrusivi, vorrei non toccare i miei vecchi ascoltatori. –