nullポインターとクエリの投稿を検索しましたが、それでも解決できません。ListViewをカスタムアダプタで膨らませてから、コンテキストメニューを表示するItemLongClickListenerに登録しています。コンテキストメニューには、ListViewを膨らませたデータベースから取得したデータが入力されます...同じ数の行ですが、明らかに...最初の項目(int idに渡された位置「0」)をクエリすると、次のようになります。例外。ただし、渡された後で1ずつインクリメントすると、代わりに最後の行で同じ例外が発生します。他のすべての行には、クエリされたデータが適切に表示されます。より完全なコードを含めることはできますが、ここではもっと基本的なものが欠けていると思います...何かアイデアはありますか?事前に感謝します。私の最初の質問です。投稿を別の方法で行う必要がある場合は、私にも知らせてください。
listview.setAdapter(new MyCustomAdapter(text, image));
listview.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View strings,
int position, long id) {
// showToastMessage("" + position);
showDialogOnLongClick(position);
return true;
}
});
データベース関数を呼び出すダイアログビルダー:
private void showDialogOnLongClick(int position) {
Builder alert = new AlertDialog.Builder(this);
// AlertDialog alert = new AlertDialog.Builder(this).create();
ArrayList mSelectedItems = new ArrayList();
ArrayList<String> listInfo = getListInfo(position);
...
}
そして、データベースの実際のクエリ:
// Getting single list item data
public ArrayList<String> getListInfo(int id) {
DatabaseHelper helper = new DatabaseHelper(this);
database = helper.getReadableDatabase();
//to increment, or not to increment?
id++;
// Cursor cursor =
// database.rawQuery("SELECT * FROM list_data WHERE _id ='"+ id +"'",
// null);
Cursor cursor = database.query("list_data", new String[] { "listTitle",
"listContent", "dateCreated", "dateModified" }, "_id = " + id
+ "", null, null, null, null);
if (cursor != null && (cursor.getCount() > 0))
cursor.moveToFirst();
ArrayList<String> result = new ArrayList<String>();
result.add(cursor.getString(cursor.getColumnIndex("listTitle")));
result.add(cursor.getString(cursor.getColumnIndex("listContent")));
result.add(cursor.getString(cursor.getColumnIndex("dateCreated")));
result.add(cursor.getString(cursor.getColumnIndex("dateModified")));
return result;
}
logCat:
03-25 15:13:20.113: E/AndroidRuntime(12639): FATAL EXCEPTION: main
03-25 15:13:20.113: E/AndroidRuntime(12639): java.lang.NullPointerException
03-25 15:13:20.113: E/AndroidRuntime(12639): at com.baked.listanywhere.ActivityMain.showDialogOnLongClick(ActivityMain.java:310)
ご覧いただきありがとうございます!