1

我的视图存根有问题。

这是我的 java 文件中的 ViewStub

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);

这是我初始化 Viewstub 的 xml

    <?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。任何想法是什么导致了这个问题以及如何解决。

非常感谢提前

日志猫中的错误: 在此处输入图像描述

4

2 回答 2

3

它不起作用的原因:根据文档:http: //developer.android.com/reference/android/view/ViewStub.html#inflate ()

您正在“膨胀的布局资源”上执行 findViewById,这正是您正在寻找的列表视图。.

于 2012-01-27T20:24:04.200 回答
1

而不是使用

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

我用了

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

它工作不知道为什么?但它确实:))

于 2011-10-18T12:09:42.427 回答