2011-03-17 4 views
0

Je veux mettre une mise en page dans une autre disposition, mais quand je fais cela lui donne NullPointerException sur relLayout.addView(squareLayout); ligneComment mettre la disposition dans une autre disposition?

for (int i = 0; i < 6; i++) { 
    for (int j = 0; j < 7; j++) { 

     RelativeLayout relLayout = (RelativeLayout) findViewById(relIds[i][j]); 
     relLayout.removeAllViews(); 

     RelativeLayout squareLayout = (RelativeLayout) findViewById(R.id.square); 
     relLayout.addView(squareLayout); 
    } 
} 

S'il vous plaît, dites-moi ce que dois-je faire?

+1

Nous avons besoin de votre fichier XML. Aussi, quel est ce "relIds"? Vous devriez utiliser LogCat pour savoir laquelle des 2 dispositions est celle qui est nulle. – Klaus

+0

car il est indiqué qu'il donne 'NullPointerException' sur' relLayout.addView (squareLayout); 'le squareLayout devrait être nul. Avez-vous défini setContentView, la vue 'square' fait-elle partie de votre disposition principale? – pankajagarwal

Répondre

1

relLayout n'est pas null lors de l'accès à la méthode removeAllViews(). Donc, soit findViewById() ou un autre thread aurait mis null à relLayout instance.

+0

Pourquoi ça devrait être 6 là? Et si vous dites que c'est 6 alors il pourrait y avoir une 'ArrayIndexOutOfBoundsException' pas une' NullPointerException'. Modifiez votre réponse et corrigez-la, je retirerais le vote. –

+0

@vikas: Vous avez raison ... –

+0

C'est gentil. J'apprécie beaucoup cela. –

0

une mauvaise utilisation de relIds [] [] sans initialisation aurait pu également fait exception de pointeur nul

Questions connexes