CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: complicazio con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 11 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 34 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 3 su 3
Discussione:

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

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
    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 11:49

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