나는 Arraylist를 보여주기 위해 ListActivity를 가지고 있습니다. onListItemClick()에서 다른 ListActivity를 호출합니다. db를 관리하기 위해 SQLiteOpenHelper()를 확장 할 특정 클래스가 있습니다. 제 ListActivity에서안드로이드 커서 목록 및 활동
난 secondListActivity이 코드를
protected void onListItemClick(ListView l, View v, int position, long id) {
String selection = l.getItemAtPosition(position).toString();
secondListActivity itemsList= new secondListActivity();
itemsList.showItemsList(selection);
//Toast.makeText(this, selection, Toast.LENGTH_LONG).show();
}
showComicsList() 메소드가있다
public void showItemsList(String name)
{
DatabasesManager databaseHelper = new DatabasesManager(this);
Cursor series = databaseHelper.getItemsIdByName(name);
Cursor cursor = databaseHelper.getChildren(series.getString(0));
for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
//fetching from database and adding to arrayList
results.add(cursor.getString(cursor.getColumnIndex(ChildrensTable.NUMBER)));
}
cursor.close();
//display in screen
this.setListAdapter(
new ArrayAdapter<Object>(
secondListActivity.this,
android.R.layout.simple_list_item_1,
results
)
);
}
getItemsIdByName() 커서를 호출
public Cursor getItemsIdByName(String name)
{
return(getReadableDatabase().query(
itemsTable.TABLE_NAME,
null,
"name =" + name,
null,
null,
null,
null,
null));
}
때 getItemsIdByName()을 호출하면이 오류가 발생합니다.
09-12 14:12:17.906: ERROR/AndroidRuntime(6090): FATAL EXCEPTION: main
09-12 14:12:17.906: ERROR/AndroidRuntime(6090): java.lang.NullPointerException
09-12 14:12:17.906: ERROR/AndroidRuntime(6090): at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:203)
09-12 14:12:17.906: ERROR/AndroidRuntime(6090): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:118)
09-12 14:12:17.906: ERROR/AndroidRuntime(6090): at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:187)
09-12 14:12:17.906: ERROR/AndroidRuntime(6090): at zepod.whatelsecomics.databases.wecDatabasesManager.getComics(wecDatabasesManager.java:159)
09-12 14:12:17.906: ERROR/AndroidRuntime(6090): at zepod.whatelsecomics.WhatelsecomicsListActivity.showComicsList(WhatelsecomicsListActivity.java:25)
09-12 14:12:17.906: ERROR/AndroidRuntime(6090): at zepod.whatelsecomics.WhatelsecomicsActivity.onListItemClick(WhatelsecomicsActivity.java:47)
09-12 14:12:17.906: ERROR/AndroidRuntime(6090): at android.app.ListActivity$2.onItemClick(ListActivity.java:319)
09-12 14:12:17.906: ERROR/AndroidRuntime(6090): at android.widget.AdapterView.performItemClick(AdapterView.java:284)
09-12 14:12:17.906: ERROR/AndroidRuntime(6090): at android.widget.ListView.performItemClick(ListView.java:3513)
09-12 14:12:17.906: ERROR/AndroidRuntime(6090): at android.widget.AbsListView$PerformClick.run(AbsListView.java:1800)
09-12 14:12:17.906: ERROR/AndroidRuntime(6090): at android.os.Handler.handleCallback(Handler.java:587)
09-12 14:12:17.906: ERROR/AndroidRuntime(6090): at android.os.Handler.dispatchMessage(Handler.java:92)
09-12 14:12:17.906: ERROR/AndroidRuntime(6090): at android.os.Looper.loop(Looper.java:123)
09-12 14:12:17.906: ERROR/AndroidRuntime(6090): at android.app.ActivityThread.main(ActivityThread.java:3647)
09-12 14:12:17.906: ERROR/AndroidRuntime(6090): at java.lang.reflect.Method.invokeNative(Native Method)
09-12 14:12:17.906: ERROR/AndroidRuntime(6090): at java.lang.reflect.Method.invoke(Method.java:507)
09-12 14:12:17.906: ERROR/AndroidRuntime(6090): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
09-12 14:12:17.906: ERROR/AndroidRuntime(6090): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
09-12 14:12:17.906: ERROR/AndroidRuntime(6090): at dalvik.system.NativeStart.main(Native Method)
누군가 나를 도울 수 있습니까? 방금 이것은 당신이 (당신의 context
가 null) 두 번째 목록을 인스턴스화하는 어디 가정 줄입니다 startActivity
를 사용하지 않고 정상적으로 인스턴스화되기 때문에
선언 후 'databaseHelper.open()'을 호출하여 직접 코드에서
ListView
을 사용하는 것을 고려해야합니다. –내가 붙여 넣을 때 databaseHelper.open() 붙여 넣기 때 내가 말하길, 내가 databasehelper – aczepod
오, 다음 질문을 편집하고 우리에게 당신의'DatabaseHelper.java' 코드를 보여주기 위해 열려있는 메소드를 만들 필요가 있다고 말하면, 당신은 분명히 메소드'open()' –