我正在尝试使用简单的适配器创建列表视图。这是我的代码和xml
list_main2.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="wrap_content"
android:orientation="horizontal"
android:paddingTop="3dip"
android:paddingBottom="3dip"
>
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:paddingLeft="2dip"/>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="2dip"
>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingLeft="2dip"
android:weightSum="3.0"
>
<TextView
android:id="@+id/caption1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="1dip"
android:textSize="15sp"
android:textStyle="bold"
android:gravity="left"
android:lines="1"
/>
<TextView
android:id="@+id/caption2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="1dip"
android:textSize="15sp"
android:gravity="left"
android:lines="1"
android:paddingLeft="6dip"
android:layout_weight="2.0"
/>
<TextView
android:id="@+id/caption3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="1dip"
android:textSize="11sp"
android:gravity="left"
android:lines="1"
android:layout_weight="1.0"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
和我的listview代码
listView = getListView();
View v1 = getLayoutInflater().inflate(R.layout.tabhost, null);
listView.addHeaderView(v1);
adapter = new SimpleAdapter(this, records_of_module, R.layout.list_main2, dispCols,
new int[] { R.id.icon,R.id.caption1,R.id.caption2,R.id.caption3,
R.id.caption4,R.id.caption5,R.id.caption6 });
setListAdapter(adapter);
listView.setOnItemClickListener(this);
listView.setTextFilterEnabled(true);
并按
过滤adapter.getFilter().filter(s);
adapter.notifyDataSetChanged();
我不会得到例外。我的堆栈跟踪看起来像这样
FATAL EXCEPTION: main
java.lang.NullPointerException
at android.widget.SimpleAdapter.getCount(SimpleAdapter.java:93)
at android.widget.AdapterView.checkFocus(AdapterView.java:689)
at android.widget.AdapterView$AdapterDataSetObserver.onInvalidated(AdapterView.java:812)
at android.database.DataSetObservable.notifyInvalidated(DataSetObservable.java:43)
at android.widget.BaseAdapter.notifyDataSetInvalidated(BaseAdapter.java:54)
at android.widget.SimpleAdapter$SimpleFilter.publishResults(SimpleAdapter.java:383)
请通过一些提示帮助我
提前谢谢 乔答案 0 :(得分:0)
它可能无法解决所有问题,但SimpleAdapter的构造函数会引用不在xml文件中的字段。您的布局包含图标以及caption1,caption2和caption3,但不包含caption4,caption5或caption6。
根据documentation for SimpleAdapters,您提供的xml资源必须至少包含您在构造函数的最后一个字段中指定的所有项目。