Reputation: 569
I'm trying to inflate a LinearLayout
to build a customized section on my screen.
String txt = "testing";
LinearLayout rowLink = (LinearLayout)getLayoutInflater().inflate(R.layout.additional_link, null);
TextView tvCsAddLink = (TextView)findViewById(R.id.tvCsAddLink);
tvCsAddLink.setText(txt);
// adding this inflated layout to an existing layout
myLinearLayout.addView(rowLink);
The content of my additional_link.xml
is as follows:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/llCsAddLink"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/white_row"
android:clickable="true"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:src="@drawable/youtube_icon" />
<TextView
android:id="@+id/tvCsAddLink"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10px"
android:paddingRight="20px"
android:textSize="16dp"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_gravity="center_vertical" />
</LinearLayout>
I'm getting a NullPointerException
on the line:
tvCsAddLink.setText(txt);
Upvotes: 4
Views: 3951
Reputation: 24181
you have inflated your XML on your linearLayout
rowLink
, and you try to find the TextView
from the layout of your Activity
( usualy main.xml
) , so you need to find your textView
on your layout rowLink like this :
TextView tvCsAddLink = (TextView)rowLink.findViewById(R.id.tvCsAddLink);
Upvotes: 5
Reputation: 18746
Use this to get TextView from layout.
TextView tvCsAddLink = (TextView)rowLink.findViewById(R.id.tvCsAddLink);
Upvotes: 8
Reputation: 87064
Call findViewById(R.id.tvCsAddLink)
on your inflated LinearLayout
rowLink, now you are searching it in the current activity.
Upvotes: 4