使用Listview的Android Activity不断抛出NullPointerException

时间:2012-04-04 06:28:11

标签: android android-listview nullpointerexception

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

但是在打开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>

谢谢!

3 个答案:

答案 0 :(得分: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 ..的列表视图。

答案 1 :(得分:0)

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

请查看此示例LINK,了解如何使用自定义适配器创建ListView。

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

答案 2 :(得分:0)

您应该致电:

super.onCreate();

第一!