CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: megthebest con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: megthebest con ben 4 Thanks ricevuti negli ultimi sette giorni
Utente del mese: megthebest con ben 21 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 3 su 3
Discussione:

Bottoni che non si cliccano

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Feb 2011
    Messaggi
    26

    Ringraziamenti
    0
    Ringraziato 1 volta in 1 Post
    Predefinito

    Bottoni che non si cliccano

    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.


     
    1
    public class Algoritmo extends Activity{       
    2
            Button button;
    3
        Bundle b;
    4
            int numeri;
    5
        LinearLayout areaBottoni;
    6
        String []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"};
    8
            public void onCreate(Bundle savedInstanceState) {
    9
            super.onCreate(savedInstanceState);
    10
            setContentView(R.layout.algoritmo);
    11
            areaBottoni=(LinearLayout) findViewById(R.id.bottoni);b=getIntent().getExtras();
    12
            
    13
            numeri=b.getInt("numeri");
    14
            
    15
            creaBottoni();
    16
        }
    17
        
    18
        private void creaBottoni(){
    19
            for(int i=0; i<numeri;i++){
    20
                
    21
                
    22
                button=new Button(this);
    23
                button.setId(i);
    24
                button.setText(letter[i]);
    25
                button.setWidth(30);
    26
                button.setOnClickListener(new Button.OnClickListener() {  
    27
                    public void onClick(View v)
    28
                    {
    29
                        leggiId();
    30
                    }});
    31
                
    32
                
    33
                areaBottoni.addView(button);
    34
                
    35
            }
    36
        }
    37
        
    38
        private void leggiId(){
    39
            Log.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
    Ultima modifica di peppewra; 28-10-11 alle 19:29

  2.  
  3. #2
    zon
    zon non è in linea
    Baby Droid L'avatar di zon


    Registrato dal
    Sep 2011
    Località
    Alessandria
    Messaggi
    40
    Smartphone
    Samsung Galaxy Note 3 SM-N9005

    Ringraziamenti
    27
    Ringraziato 17 volte in 15 Posts
    Predefinito

    passa i parametri giusti... se tu fai button.getId(); in un metodo esterno al listener per lui button è un bottone dichiarato fuori da qualsiasi metodo all'interno della tua activity... prova cosi!

    16
     
    1
    button.setOnClickListener(new Button.OnClickListener() {  
    2
                    public void onClick(View v)
    3
                    {
    4
                        leggiId(v);
    5
                    }});
    6
                
    7
                
    8
                areaBottoni.addView(button);
    9
                
    10
            }
    11
        }
    12
        
    13
        private void leggiId(int v){
    14
            Log.i("click", ""+v.getId());
    15
        }
    16
    }

    stessa cosa ti consiglierei per "numeri" dichiararli in quella maniera può essere rischioso se punti a programmi più complessi che uno che stampa l'id...

    Ringrazia con il tasto thanks chi ti è stato utile!

    Se usi una bella app gratis ringrazia lo sviluppatore con un click sulla publicità.

    è solo buona educazione!

  4. #3
    Baby Droid


    Registrato dal
    Feb 2011
    Messaggi
    26

    Ringraziamenti
    0
    Ringraziato 1 volta in 1 Post
    Predefinito

    ciao,
    grazie per la risposta. io ho già risolto facendo così

    x
     
    1
    2
    private void creaBottoni(){
    3
            for(int i=0; i<numeri;i++){
    4
                
    5
                
    6
                button=new Button(this);
    7
                button.setId(i);
    8
                button.setWidth(40);
    9
                            button.setOnClickListener(l);
    10
                
    11
                areaBottoni.addView(button);
    12
            }
    13
        }
    14
    15
            private OnClickListener l=new OnClickListener(){
    16
            @Override
    17
            public void onClick(View v){
    18
    19
                    //istruzioni
    20
                    
    21
                    }
    22
            }
    23
    24




    ps:
    grazie per i consigli

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy