Pourquoi ne findViewById(...) return null?
findViewById retourne null pour moi sur une ImageView widget. Il n'y a pas d'erreur, et rien dans le logcat qui indique ce qui se passe. L'id du match et à l'image de vues sont définies correctement. Java et xml sont liés par la classe de la balise xml pointant à la classe définie dans le java qui est un descendant de RelativeLayout.
J'ai essayé de changer le nom de R. id.more_icon1 et cela ne fonctionne pas. Essayé de nettoyer et cela ne fonctionne pas. Utilisé débogueur pour voir qu'il n'a vraiment il suffit de déplacer sur le passé et quand elle revient mMoreIcon == null.
Ce qui est bizarre, c'est que l'autre ImageView le travail de l'amende juste.
Personne vu ça avant, ou avez des idées?
Code Java: la Classe est un descendant de RelativeLayout
@Override
protected void onFinishInflate() {
super.onFinishInflate();
mText1 = (TextView) findViewById(R.id.text1);
mText2 = (TextView) findViewById(R.id.text2);
mIcon1 = (ImageView) findViewById(R.id.icon1);
mIcon2 = (ImageView) findViewById(R.id.icon2);
//mMoreIcon is the one that gets set as null. mIcon1 and mIcon2 work just fine.
mMoreIcon = (ImageView) findViewById(R.id.more_icon1);
}
Code XML:
<ImageView android:id="@+id/icon1"
style="@style/SuggestionIcon1"
android:scaleType="centerInside"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
/>
<!-- This is the icon that is being returned as null -->
<ImageView android:id="@+id/more_icon1"
style="@style/MoreIcon2"
android:scaleType="centerInside"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:visibility="gone" />
<ImageView android:id="@+id/icon2"
style="@style/SuggestionIcon2"
android:scaleType="centerInside"
android:layout_toLeftOf="@id/more_icon1"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:visibility="gone" />
Grâce
Pas une question stupide, mais oui, j'ai. J'ai fait un make clean sur ce qui supprime le R.java fichier et recrée tous les fichiers générés. J'ai aussi essayé de changer le nom. Au début, c'était juste more_icon.
Hmm. Maintenant c'est un étrange. J'ai essayé de recréer votre disposition (Sauf pour la mise en page étant un descendant de RelativeLayout, mais qui ne devrait pas être un problème) et il a bien fonctionné pour moi. Je n'ai vraiment aucune idée de ce que le problème pourrait par. Il est toujours en train de nettoyer votre dossier /bin et la reconstruction du projet. Qui a résolu plusieurs problèmes inexplicables pour moi avant.
Pour moi, c'était un problème d'une mauvaise référence plus tôt, donc je n'étais pas réellement à la recherche pour le point de vue sous le droit des parents. Artefact de copier/coller le code.
OriginalL'auteur FuegoFingers | 2011-12-09
Vous devez vous connecter pour publier un commentaire.
J'ai eu un problème similaire et mon problème est que l'findviewbyid seulement trouver l'enfant vues. Si la vue est un frère ou une sœur, vous avez de l'appeler à partir du parent. L'activité devrait être en mesure de le trouver.
OriginalL'auteur danca
J'ai récemment eu un problème similaire lors de l'utilisation de l'android:visibilité="disparu"
Avec l'ImageView au-dessus de la TextViews, l'application plante à la ligne suivante.
Fichier Java:
Si j'ai déménagé l'ImageView ci-dessous la TextViews, l'application s'exécute, mais le TextViews ont été couverts par l'ImageView.
Une fois que j'ai enlevé le android:visibilité="disparu", le findViewById résolus correctement. Tout ce que j'avais à faire était de définir la visibilité dans le code par la suite.
OriginalL'auteur Phidius
J'ai eu ce problème aussi. C'était mon code:
Après modification de cela, il a travaillé:
Il semble que si vous instanciez votre mise en page avant de vous setContentView (), elle renvoie null.
OriginalL'auteur dodo