CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: NiloGlock con ben 10 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: DreamReaper con ben 86 Thanks ricevuti negli ultimi sette giorni
Utente del mese: DreamReaper con ben 290 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 3 su 3
Discussione:

Riferimento a più TextView sotto forma di array (findViewById)

  1. #1
    Baby Droid


    Registrato dal
    Jan 2013
    Messaggi
    18

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Riferimento a più TextView sotto forma di array (findViewById)

    Ciao ragazzi, spero mi possiate dare una mano, ho questo problema:
    ho 10 textVew e devo collegarle al file java in un array di textView in modo che dopo posso determinare con un ciclo for, quante textview mostrare a seconda del livello scelto. Vi posto quello che ho fatto e l'errore riscontrato, vi prego aiutatemi!

    codice:
    public class Gioca extends Activity {
    
    	TextView P[];
    	
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		// TODO Auto-generated method stub
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.layout_gioca);
    		
    		ref();
    		
    		
    		
    		//prelevo il numero di colori e mostro le textView
    		int n = Integer.parseInt(getOptionsLevel("colori"));
    		for (int c=0; c<n; c++){			
    			P[c].setVisibility(0);
    		}
    		
    		
    		
    	}
    
    	private void ref() {
    		// TODO Auto-generated method stub
    		 P[0] = (TextView)findViewById(R.id.P1);
    		 P[1] = (TextView)findViewById(R.id.P2);
    		 P[2] = (TextView)findViewById(R.id.P3);
    		 P[3] = (TextView)findViewById(R.id.P4);
    		 P[4] = (TextView)findViewById(R.id.P5);
    		 P[5] = (TextView)findViewById(R.id.P6);
    		 P[6] = (TextView)findViewById(R.id.P7);
    		 P[7] = (TextView)findViewById(R.id.P8);
    		 P[8] = (TextView)findViewById(R.id.P9);
    		 P[9] = (TextView)findViewById(R.id.P10);
    	}
    L'errore è questo: Java.lang.nullPointerException..

    GRAZIE!

  2.  
  3. #2
    Androidiano L'avatar di iClaude76


    Registrato dal
    Oct 2012
    Località
    Trento
    Messaggi
    207
    Smartphone
    Galaxy S3, Nexus 7, G. Tab 2 7

    Ringraziamenti
    1
    Ringraziato 27 volte in 25 Posts
    Predefinito

    Da quello che si vede mi pare che quando chiami ref() non hai ancora creato l'array es.
    TextView tv [] = new TextView [10];



    [public void onCreate (Bundle savedInstanceState) {...}]

  4. #3
    Baby Droid


    Registrato dal
    Jan 2013
    Messaggi
    18

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Ha.. Grazie mille ora lo provo! Ma quando si dichiara un array non basta scrivere TextBox[] p;?? Bisogna anche indicare il numero di elementi?

    Senti un attimo, mi puoi dare una mano su un altra cosa? perchè prima che tu mi rispondessi ho notato che era piu dinamico aggiungere direttamente da condice le textBox con un ciclo for.. però ho due problemi
    1 si può aggiungere un id che sia composto da string? e non solo da int cosi: tv.setId(c); (c deve essere per forza integer)
    2 ogni texBox ha un DRAWABLE diverso come background, è possibile aggiungerlo dinamicamente con un ciclo o devo per forza fare cosi:

    codice:
    switch (c){
    				case 1:tv.setBackgroundDrawable(getResources().getDrawable(R.drawable.rosso)); 
    					break;
    				case 2:tv.setBackgroundDrawable(getResources().getDrawable(R.drawable.arancione)); 
    					break;
    				case 3:tv.setBackgroundDrawable(getResources().getDrawable(R.drawable.azzurro)); 
    					break;
    				case 4:tv.setBackgroundDrawable(getResources().getDrawable(R.drawable.bianco)); 
    					break;
    				case 5:tv.setBackgroundDrawable(getResources().getDrawable(R.drawable.blu)); 
    					break;
    				case 6:tv.setBackgroundDrawable(getResources().getDrawable(R.drawable.giallo)); 
    					break;
    				case 7:tv.setBackgroundDrawable(getResources().getDrawable(R.drawable.grigio)); 
    					break;
    				case 8:tv.setBackgroundDrawable(getResources().getDrawable(R.drawable.nero)); 
    					break;
    				case 9:tv.setBackgroundDrawable(getResources().getDrawable(R.drawable.verde)); 
    					break;
    				case 10:tv.setBackgroundDrawable(getResources().getDrawable(R.drawable.viola)); 
    					break;
    			}
    Grazie mille!
    Ultima modifica di dvdciri; 15-02-13 alle 12:49

Permessi di invio

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