CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: rattlehead con ben 16 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: rattlehead con ben 73 Thanks ricevuti negli ultimi sette giorni
Utente del mese: ste22032 con ben 319 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
    Thanks
    0
    Thanked 0 Times 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
    190
    Smartphone
    Galaxy S3, Nexus 7, G. Tab 2 7
    Thanks
    1
    Thanked 23 Times in 21 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
    Thanks
    0
    Thanked 0 Times 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 a 11:49

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •