android - setText() no funciona en el diseño inflado
android-layout nullpointerexception (3)
Llame a findViewById(R.id.tvCsAddLink)
en su LinearLayout
rowLink inflado, ahora lo está buscando en la actividad actual.
LinearLayout
inflar LinearLayout
para crear una sección personalizada en mi pantalla.
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);
El contenido de mi additional_link.xml
es el siguiente:
<?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>
NullPointerException
una NullPointerException
en la línea:
tvCsAddLink.setText(txt);
Use esto para obtener TextView del diseño.
TextView tvCsAddLink = (TextView)rowLink.findViewById(R.id.tvCsAddLink);
ha inflado su XML en linearLayout
rowLink
, e intenta encontrar el TextView
desde el diseño de su Activity
( main.xml
), por lo que necesita encontrar su textView
en su disposición rowLink así:
TextView tvCsAddLink = (TextView)rowLink.findViewById(R.id.tvCsAddLink);