Проблема с LayoutInflator для установки TextView Android - PullRequest
0 голосов
/ 17 июля 2011

Привет, ребята, я использую два макета, один из которых встроен через «include» в основной файл макета.Я хочу установить TextView во встроенном в деятельности для основного XML.Вот что я придумал до сих пор ......

Основной xml: date_list_layout.xml

<RelativeLayout android:id="@+id/RelativeLayout01"
            android:layout_width="fill_parent" 
            android:layout_height="fill_parent"
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:background="@drawable/bgoption">

<include layout="@layout/cur"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />

</RelativeLayout>

Встроенный xml: cur.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">

  <TextView android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:id="@+id/currency"  
  android:textSize="14px"
  android:paddingLeft="10dp"
  android:textColor="#d17375"
  ></TextView>

</LinearLayout>

Затем мой код Activity устанавливает содержимое основного xml, но пытается накачать встроенный, чтобы установить текст следующим образом ......

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.date_list_layout);

View v  = LayoutInflater.from(getBaseContext()).inflate(R.layout.cur,
            null);

    TextView currency = (TextView) v.findViewById(R.id.currency);
    currency.setText("test");

}

I 'Я не получаю никаких ошибок, но TextView остается пустым.Есть идеи, что я делаю не так

Спасибо A

Ответы [ 2 ]

1 голос
/ 24 октября 2017

Вы можете использовать setText непосредственно в TextView. Без вызова LayoutInflater в действии.

 setContentView(R.layout.date_list_layout);

 TextView currency = (TextView) v.findViewById(R.id.currency);
 currency.setText("test");

0 голосов
/ 04 июня 2013

Просто используйте TextView:

 TextView currency = (TextView) findViewById(R.id.currency);

Если у вас есть include d cur.xml , вам больше не нужно раздувать вручную. Он автоматически вставляется в структуру, поэтому вы можете безопасно удалить дополнительный вызов LayoutInflater.

...