Scusate la "niubbezza" della domanda, ma non possiamo implementare onClickListener nella classe TestActivity e gestire l'evento onClick direttamente da quella?
qualcosa tipo:
codice:
package mieapplicazioni.test;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class TestActivity extends Activity implements onClickListener{
// Richiamato non appena l'attività viene creata
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState); // Invoca il costruttore del supertipo
// Parte personale del metodo:
setContentView(R.layout.main); // Setta il layout prendendolo in /res/layout/main.xml
/* Richiama i bottoni: il metodo findViewById() ricerca nel layout caricato un componente
* avente l'ID specificato come argomento. A questo punto il bottone può essere caricato
* e manipolato */
Button bottone01 = (Button) findViewById(R.id.bottone01);
Button bottone02 = (Button) findViewById(R.id.bottone02);
bottone01.setOnClickListener(this);
bottone02.setOnClickListener(this);
}
// Gestisce il click su entrambi i bottoni
public void onClick(View v) {
// Qua ci va una decisione su chi ha generato l'evento, in Java usavo if(e.getSource() instanceof BOTTONE) && (e.getSource().getName().equals(NOMEBOTTONE))
// clickSuBottone01(); o clickSuBottone02();
}
// Gestisce l'evento del click sul bottone 1 stampando un messaggio
private void clickSuBottone01(){
Toast toast = Toast.makeText(this, "Hai cliccato il bottone 1!", Toast.LENGTH_SHORT);
toast.show();
}
// Gestisce l'evento del click sul bottone 2 stampando un messaggio
private void clickSuBottone02(){
Toast toast = Toast.makeText(this, "Hai cliccato il bottone 2!", Toast.LENGTH_SHORT);
toast.show();
}
}