我想填充一個列表並從活動中打開的數據庫執行此操作。我做了一個自定義的適配器,並且'helper'類調用了另一個'helper'類的listview包裝器。在那個listview包裝器中,我想打開另一個(不同的)數據庫,但是我得到一個空指針異常。Nullpointer database.open(),getwritabledatabase
所以在活動我打電話:
adapter = new ListViewAdapter(this, ListViewAdapter.TPL_HISTORY, historydatasource.getAllCalls());
list.setAdapter(adapter);
比起historydatasource類打開來處理我的列表視圖中創建的模板listviewwrapper(助手)類。在那裏我想打開另一個數據庫,但我得到一個空指針異常。
任何人的想法,我可以做到這一點?
DB_DataSource cardsdatasource=new DB_DataSource(myContext);
cardsdatasource.open(); (GIVES NULLPOINTER, because myContext=null)
有沒有辦法獲得上下文?
錯誤:
03-20 14:03:51.919: E/AndroidRuntime(15492): FATAL EXCEPTION: main
03-20 14:03:51.919: E/AndroidRuntime(15492): java.lang.NullPointerException
03-20 14:03:51.919: E/AndroidRuntime(15492): at com.myapp.testapp.ListViewWrapper.populateFrom(ListViewWrapper.java:91)
03-20 14:03:51.919: E/AndroidRuntime(15492): at com.myapp.testapp.ListViewAdapter.getView(ListViewAdapter.java:121)
03-20 14:03:51.919: E/AndroidRuntime(15492): at android.widget.AbsListView.obtainView(AbsListView.java:1536)
03-20 14:03:51.919: E/AndroidRuntime(15492): at android.widget.ListView.makeAndAddView(ListView.java:1793)
03-20 14:03:51.919: E/AndroidRuntime(15492): at android.widget.ListView.fillDown(ListView.java:718)
03-20 14:03:51.919: E/AndroidRuntime(15492): at android.widget.ListView.fillFromTop(ListView.java:775)
03-20 14:03:51.919: E/AndroidRuntime(15492): at android.widget.ListView.layoutChildren(ListView.java:1646)
03-20 14:03:51.919: E/AndroidRuntime(15492): at android.widget.AbsListView.onLayout(AbsListView.java:1366)
03-20 14:03:51.919: E/AndroidRuntime(15492): at android.view.View.layout(View.java:7175)
03-20 14:03:51.919: E/AndroidRuntime(15492): at android.widget.RelativeLayout.onLayout(RelativeLayout.java:912)
03-20 14:03:51.919: E/AndroidRuntime(15492): at android.view.View.layout(View.java:7175)
03-20 14:03:51.919: E/AndroidRuntime(15492): at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
03-20 14:03:51.919: E/AndroidRuntime(15492): at android.view.View.layout(View.java:7175)
03-20 14:03:51.919: E/AndroidRuntime(15492): at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
03-20 14:03:51.919: E/AndroidRuntime(15492): at android.view.View.layout(View.java:7175)
03-20 14:03:51.919: E/AndroidRuntime(15492): at android.view.ViewRoot.performTraversals(ViewRoot.java:1146)
03-20 14:03:51.919: E/AndroidRuntime(15492): at android.view.ViewRoot.handleMessage(ViewRoot.java:1866)
03-20 14:03:51.919: E/AndroidRuntime(15492): at android.os.Handler.dispatchMessage(Handler.java:99)
03-20 14:03:51.919: E/AndroidRuntime(15492): at android.os.Looper.loop(Looper.java:123)
03-20 14:03:51.919: E/AndroidRuntime(15492): at android.app.ActivityThread.main(ActivityThread.java:3687)
03-20 14:03:51.919: E/AndroidRuntime(15492): at java.lang.reflect.Method.invokeNative(Native Method)
03-20 14:03:51.919: E/AndroidRuntime(15492): at java.lang.reflect.Method.invoke(Method.java:507)
03-20 14:03:51.919: E/AndroidRuntime(15492): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
03-20 14:03:51.919: E/AndroidRuntime(15492): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
03-20 14:03:51.919: E/AndroidRuntime(15492): at dalvik.system.NativeStart.main(Native Method)
分享方法'open'的代碼 – 2013-03-20 13:37:29