0

我正在尝试创建一个 ListView,每行显示 2 个 TextView。

但是,我在打开 Activity 时不断收到 NullPointerException,但我不知道为什么(logCat 日志没有告诉我到底是哪一行造成了问题)。

以下是相关代码:

主类EventViewActivity

public class EventViewActivity extends ListActivity {
public String[] eventTitles;

@Override
public void onCreate(Bundle savedInstanceState) {
    //Remove title bar
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    //Remove notification bar
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

    super.onCreate(savedInstanceState);
    setContentView(R.layout.eventview_layout);

    eventTitles = new String[]{                 
            getResources().getString(R.string.eventtitle1),
            getResources().getString(R.string.eventtitle2),
            getResources().getString(R.string.eventtitle3),
            getResources().getString(R.string.eventtitle4),
            getResources().getString(R.string.eventtitle5)
    };

    setListAdapter(new ArrayAdapter<String>(this, R.layout.eventview_layout, R.id.row_title, eventTitles));
    setListAdapter(new ArrayAdapter<String>(this, R.layout.eventview_layout, R.id.row_descr, eventTitles));

    ListView lv = getListView();
    lv.setTextFilterEnabled(true);

}

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);

    Toast.makeText(getApplicationContext(), "You have clicked an item", Toast.LENGTH_SHORT).show();
}
}

layout.xml 是:

 <LinearLayout xmlns:android="schemas.android.com/apk/res/android"
       android:layout_width="fill_parent" android:layout_height="wrap_content"
       android:orientation="vertical" >
       <ListView android:id="@+id/android:eventlist" android:layout_width="fill_parent"
        android:layout_height="fill_parent"
       android:background="@drawable/eventview_background"/>
</LinearLayout>

谢谢!

4

3 回答 3

0

你应该调用:

super.onCreate();

第一的!

于 2012-04-04T08:22:48.690 回答
0

我认为您接近 ListView 的方式不正确。

请查看此示例链接以完整了解如何使用自定义适配器创建 ListView。

上面的链接有使用 listview 创建的示例应用程序,每个 listitem 都有两个文本字段作为您的要求。

于 2012-04-04T06:54:02.727 回答
0

eventview_layout有一个 ID 为android:id="@android:id/list".. 的 ListView 吗?如果不添加它..我认为它没有完成

一个小修正。。

    <LinearLayout xmlns:android="schemas.android.com/apk/res/android"; android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical" > 
    <ListView android:id="@android:id/list"
 android:layout_width="fill_parent" 
android:layout_height="fill_parent"
 android:background="@drawable/eventview_background"/>
 </LinearLayout>

ListACtivity 的 contentView 有一个具有完全相同 ID 的 listView 是必要的。

于 2012-04-04T06:32:23.160 回答