ViewStub NullPointerException - PullRequest
       21

ViewStub NullPointerException

1 голос
/ 11 октября 2011

У меня проблема с заглушкой.

Это ViewStub в моем Java-файле

ViewStub stub = (ViewStub) findViewById(R.id.stub1);
ArrayAdapter<String> content=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,files);
View inflated=stub.inflate();
ListView people=(ListView)inflated.findViewById(R.id.friends);
people.setAdapter(content);

Это xml, где я инициализирую Viewstub

    <?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id = "@+id/linear_details" >
    <include layout="@layout/home_back_next_bar" />
    <ViewStub android:id="@+id/stub1" android:inflatedId="@+id/showlayout"
android:layout="@layout/layout1" android:layout_width="fill_parent"
android:layout_height="wrap_content"/>  

</LinearLayout>
</merge>

мой файл макета, накаченный в заглушке вида, выглядит следующим образом:

     <?xml version="1.0" encoding="utf-8"?>
   <ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/friends"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>

Этот код дает мне исключение NullPointerException при создании экземпляра списка для его заполнения. Любые идеи, что вызывает эту проблему и как решить.

Большое спасибо заранее

Ошибка в журнале cat: enter image description here

Ответы [ 2 ]

3 голосов
/ 28 января 2012

Причина, по которой это не сработало: Согласно документам: http://developer.android.com/reference/android/view/ViewStub.html#inflate()

Вы выполняете findViewById для "Завышенного ресурса макета", который является именно тем списком, который вы ищете. .

1 голос
/ 18 октября 2011

Вместо использования

ListView people=(ListView)inflated.findViewById(R.id.friends);

я использовал

ListView people=(ListView)stub.inflate();

И это сработало, не зная почему ??.но это сделал :))

...