How to access Button inside "include" layout
AndroidLayoutIncludeOnclickAndroid Problem Overview
Refer to the doc: http://android-developers.blogspot.com/2009/02/android-layout-tricks-2-reusing-layouts.html
I have a button inside the included layout, how can I access the button? I don't know the id! How can I define the OnClickListener...?
Please help...
Android Solutions
Solution 1 - Android
The id you have with the include tag is assigned to the root View of the included layout. First get a reference to that View using findViewByid. Then you can call findViewById on that specific View to get a reference to a View inside the layout. So:
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
Solution 2 - Android
All you need is the id of the parent view:
In this example, the LinearLayout
is the parent of the TextView
I want from the included View.
I can now do this:
View view = findViewById(R.id.include_title_layout);
TextView titleTV = (TextView) view.findViewById(R.id.newsTitleTextView);
titleTV.setText("Whatever");
Solution 3 - Android
You do know the id of the include. You can get that complete element, and then get one of its children starting from there.
Solution 4 - Android
Actually include
tags include all the elements in your root layout. So you can always access them using findViewById
on your Activity.
Suppose you have a alayout.xml
in which there is a include
layout. Now in one of your activity A,inside onCreate
you declared setContentView(R.layout.alayout)
Now inside your include layout you might have a button with id myBtn
. You can access that inside onCreate
in the same way you could access it if it were in main layout: findViewById(R.id.myBtn)
Solution 5 - Android
i think your mean is NavigationView. you can access to inner layout by this way:
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);