我为listview
创建了自定义布局,但是当我运行应用时,它会崩溃,而logcat
会说:NPE
。知道为什么会这样吗?
Cutomized_layout“在布局文件夹里面”
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tv"
android:textColor="@android:color/holo_purple"
android:layout_width="fill_parent"
android:gravity="center"
android:layout_height="fill_parent"/>
代码:
ListView mList = (ListView) findViewById(R.id.list);
ArrayAdapter<String> mArrayAdapter = new ArrayAdapter<String>(getApplicationContext(),
R.layout.listviewlayout, android.R.id.text1, str);
logcat的:
05-28 13:01:18.197: E/AndroidRuntime(31484): FATAL EXCEPTION: main
05-28 13:01:18.197: E/AndroidRuntime(31484): java.lang.NullPointerException
05-28 13:01:18.197: E/AndroidRuntime(31484): at
android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:392)
05-28 13:01:18.197: E/AndroidRuntime(31484): at
android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)
05-28 13:01:18.197: E/AndroidRuntime(31484): at
android.widget.AbsListView.obtainView(AbsListView.java:2627)
05-28 13:01:18.197: E/AndroidRuntime(31484): at
android.widget.ListView.measureHeightOfChildren(ListView.java:1259)
答案 0 :(得分:2)
你应该改变这个
ArrayAdapter<String> mArrayAdapter = new ArrayAdapter<String>(getApplicationContext(),
R.layout.listviewlayout, android.R.id.text1, str);
到
ArrayAdapter<String> mArrayAdapter = new ArrayAdapter<String>(getApplicationContext(),
R.layout.listviewlayout, R.id.tv, str);
您需要将listviewlayout TextView
ID android:id="@+id/tv"
作为ArrayAdapter
答案 1 :(得分:0)
请试试这个:
ListView mList = (ListView) findViewById(R.id.list);
ArrayAdapter<String> mArrayAdapter = new ArrayAdapter<String>(getApplicationContext(),
R.layout.listviewlayout, R.id.tv, str);