ciao a tutti,
mi spiego meglio.
io devo fare un programmino che mi crei un numero di bottoni deciso dall'utente, e fino a qui ci siamo. Questi bottoni devono però anche essere cliccati e quindi restituirmi ognuno il suo id. Qui nacono le complicazioni, perchè non riesco a capire il motivo, ma qualsiasi bottone mi restituisce il numero di bottoni-1. vi posto il codice.
1public class Algoritmo extends Activity{
2Button button;
3Bundle b;
4int numeri;
5LinearLayout areaBottoni;
6String []letter={"A","B","C","D","E","F","G","H","I","J","K","L","M","N",
7"O","P","Q","R","S","T","U","V","W","X","Y","Z"};
8public void onCreate(Bundle savedInstanceState) {
9super.onCreate(savedInstanceState);
10setContentView(R.layout.algoritmo);
11areaBottoni=(LinearLayout) findViewById(R.id.bottoni);b=getIntent().getExtras();
12
13numeri=b.getInt("numeri");
14
15creaBottoni();
16}
17
18private void creaBottoni(){
19for(int i=0; i<numeri;i++){
20
21
22button=new Button(this);
23button.setId(i);
24button.setText(letter[i]);
25button.setWidth(30);
26button.setOnClickListener(new Button.OnClickListener() {
27public void onClick(View v)
28{
29leggiId();
30}});
31
32
33areaBottoni.addView(button);
34
35}
36}
37
38private void leggiId(){
39Log.i("click", ""+button.getId());
40}
41}
ed ecco il logcat. In questo caso il numero da me scelto era sei e infatti mi ha restituito 5
10-28 17:59:27.715: I/click(2829): 5
10-28 17:59:29.035: I/click(2829): 5
10-28 17:59:29.375: I/click(2829): 5
10-28 17:59:29.885: I/click(2829): 5
ci sono più righe perchè ho cliccato più bottoni ma sempre con lo stesso risultato.
ciao e grazie