Voir la doc: http://Android-developers.blogspot.com/2009/02/Android-layout-tricks-2-reusing-layouts.html
J'ai un bouton dans la mise en page incluse, comment puis-je accéder au bouton? Je ne connais pas l'identifiant! Comment définir le OnClickListener ...?
S'il vous plaît aider ...
L'identifiant que vous avez avec la balise include est attribué à la vue racine de la présentation incluse ..__ D'abord, obtenez une référence à cette vue à l'aide de findViewByid. Ensuite, vous pouvez appeler findViewById sur cette vue spécifique pour obtenir une référence à une vue à l'intérieur de la présentation. Alors:
View myLayout = findViewById( R.id.cell1 ); // root View id from that link
View myView = myLayout.findViewById( R.id.someinnerview ); // id of a view contained in the included file
Tout ce dont vous avez besoin est l’identifiant de la vue parent:
Dans cet exemple, la LinearLayout
est le parent de la TextView
que je veux à partir de la vue incluse.
Je peux maintenant faire ceci:
View view = findViewById(R.id.include_title_layout);
TextView titleTV = (TextView) view.findViewById(R.id.newsTitleTextView);
titleTV.setText("Whatever");
La résolution des ID de widgets lorsqu’on inclut plusieurs fois la même présentation XML présente un piège courant. Un article de blog sur http://www.coboltforge.com/2012/05/tech-stuff-layout/ explique précisément ce problème et comment le résoudre!
Vous connaissez l'identifiant de l'include. Vous pouvez obtenir cet élément complet, puis obtenir l'un de ses enfants à partir de là.
En fait, les balises include
incluent tous les éléments de votre mise en page racine. Vous pouvez donc toujours y accéder en utilisant findViewById
dans votre activité.
Supposons que vous ayez un alayout.xml
dans lequel il y a une disposition include
. Maintenant, dans l'une de vos activités A, dans onCreate
, vous avez déclaré setContentView(R.layout.alayout)
. Maintenant, dans votre disposition d'inclusion, vous pouvez avoir un bouton avec l'ID myBtn
. Vous pouvez accéder à cela dans onCreate
de la même manière que si elle se trouvait dans la présentation principale: findViewById(R.id.myBtn)
je pense que votre moyenne est NavigationView. vous pouvez accéder à la disposition intérieure de cette manière:
NavigationView ngv= (NavigationView) findViewById(R.id.navigation_id);
View innerview = ngv.getHeaderView(0);
TextView user_view= (TextView)innerview.findViewById(R.id.nav_name); //any you need
user_view.setText(user);