ドキュメントを参照してください: http://Android-developers.blogspot.com/2009/02/Android-layout-tricks-2-reusing-layouts.html
含まれるレイアウト内にボタンがありますが、ボタンにアクセスするにはどうすればよいですか? IDがわかりません! OnClickListener ...を定義するにはどうすればよいですか?
助けてください...
Includeタグで持つidは、含まれるレイアウトのルートビューに割り当てられます。まず、findViewByidを使用して、そのビューへの参照を取得します。次に、その特定のビューでfindViewByIdを呼び出して、レイアウト内のビューへの参照を取得できます。そう:
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
同じXMLレイアウトを複数回含める場合のウィジェットIDの解決に関して、よくある落とし穴があります。 http://www.coboltforge.com/2012/05/tech-stuff-layout/ のブログ投稿では、まさにその問題とその解決方法を説明しています!
インクルードのIDを知っています。その完全な要素を取得し、そこからその子の1つを取得できます。
実際、include
タグにはルートレイアウトのすべての要素が含まれます。そのため、アクティビティでfindViewById
を使用していつでもアクセスできます。
include
レイアウトがある_alayout.xml
_があるとします。アクティビティAの1つで、onCreate
内でsetContentView(R.layout.alayout)
を宣言しました。インクルードレイアウト内に、_myBtn
というIDのボタンがあります。メインレイアウトにある場合にアクセスできるのと同じ方法で、onCreate
内にアクセスできます:findViewById(R.id.myBtn)
あなたの平均はNavigationViewだと思います。この方法で内部レイアウトにアクセスできます。
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);