我知道有很多類似的問題,併發誓我已經嘗試過所有這些。 我正在存儲一個字符串和數據庫,並希望檢索它作爲列表。這已經完成使用ListAdapter
(我遵循ToDo列表教程)。ListView不能使用SimpleCursorAdapter和ListAdapter
問題是,我想實施OnItemClickListener
這個列表已經從數據庫中檢索。但是當我用ListView
替換ListAdapter
時,該應用程序開始與NullPointException
一起崩潰。
下面是代碼:
public class OfflineActivity extends ListActivity {
private ListAdapter listAdapter;
private TaskDBHelper helper;
ListView listView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.offline_list);
updateUI();
}
private void updateUI() {
helper = new TaskDBHelper(OfflineActivity.this);
SQLiteDatabase sqlDB = helper.getReadableDatabase();
Cursor cursor = sqlDB.query(TaskContract.TABLE,
new String[]{TaskContract.Columns._ID, TaskContract.Columns.TASK},
null, null, null, null, null);
listAdapter = new SimpleCursorAdapter(
this,
R.layout.offline_item,
cursor,
new String[]{TaskContract.Columns.TASK},
new int[]{R.id.taskTextView},
0
);
listView = (ListView) findViewById(R.id.list);
this.setListAdapter(listAdapter);
listView.setAdapter(listAdapter);
}
}
該應用程序運行正常,直到我把listView.setAdapter(listAdapter);
。是否有某種方式可以實現OnItemClickListener
,而不會對代碼做任何更改。
下面是XML文件:
offline_list.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@android:id/list"
android:layout_weight="1" />
offline_item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/taskTextView" />
PS。我相信listAdapter
不是空的..如果我不添加最後一行,那麼list
確實會被填充。自2天以來一直停留在它上面。 plssss的幫助
燁...抱歉..試過,以及..但同樣'NullPointException'錯誤 –