findViewById returns null on a LinearLayout inside an <include>d view
android, android-linearlayout, include, nullpointerexception
Solution
If you set the `id` attribute for the `include` element, then that will be the id for the root of the inflated layout. So, instead of looking for a `LinearLayout` with the id `headerLayout` look for the id `headerInclude`(or don't set an id for the `include` element).
Problem
I cannot figure out mistake here. I may be oevrlooking some thing... Layout XML: ``` <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/listLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ffffff" android:orientation="vertical" > <include android:id="@+id/headerInclude" android:layout_width="fill_parent" android:layout_height="38dp" android:layout_gravity="top" layout="@layout/header" /> <LinearLayout android:id="@+id/actualView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginBottom="10dp" android:layout_marginTop="10dp" android:layout_weight="1" > <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:divider="@drawable/dotted_line" android:dividerHeight="2dp" android:drawSelectorOnTop="false" android:paddingBottom="10dp" android:paddingTop="10dp" /> </LinearLayout> <include android:layout_width="fill_parent" android:layout_height="35dp" android:layout_gravity="bottom" layout="@layout/footer" /> </LinearLayout> ``` Included header XML: ``` <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/headerLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/header_bgr" android:orientation="horizontal" android:paddingLeft="5dp" android:paddingRight="5dp" android:paddingTop="7dp" > <TextView android:id="@+id/tvScreenTitle" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="0.8" android:ellipsize="end" android:gravity="center|left" android:singleLine="true" android:text="" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#ffffff" android:textSize="17sp" android:textStyle="bold" /> <TextView android:id="@+id/tvScreenSubTitle" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="0.2" android:gravity="center|right" android:text="" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#ffffff" android:textSize="15sp" android:textStyle="bold" /> </LinearLayout> ``` List Activity java code: ``` protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); appData = ((DxApp) this.getApplicationContext()).getData(); setContentView(R.layout.list); setTitle("Some Title..."); // some more code... addButtons(); } protected void addButtons() { LinearLayout headerLayout = (LinearLayout) findViewById(R.id.headerLayout); Button btn = new Button(this); btn.setText("Go to My Sets"); btn.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { // do some thing here... } }); if (headerLayout != null) headerLayout.addView(btn); } @Override public void setTitle(CharSequence title) { TextView tvTitle = (TextView) findViewById(R.id.tvScreenTitle); tvTitle.setText(title); } ``` If I remove the check `if(headerLayout != null)`, I get `null` pointer exception on`headerLayout.addView(btn)`. I am able to get `TextView` in function `setTitle` but some how cannot get `LinearLayout` Can any one help me in figuring out what is wrong with the code...