我正在尝试创建一个每行显示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>
谢谢!
答案 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();
第一!