【问题标题】:Using SQLite DB with fragment将 SQLite DB 与片段一起使用
【发布时间】:2014-09-29 22:16:00
【问题描述】:

所以我有一些标签片段的基本活动。其中一个打开了与我的数据库的连接。应用程序启动时没有任何崩溃,但是当我旋转手机并重新创建视图时,我得到一个“NullPointerException”:

147    MySQLiteHelper dbHelper = new MySQLiteHelper(getActivity());
148    SQLiteDatabase db = dbHelper.getReadableDatabase();

调试器:

09-30 00:12:56.307    9690-9690/com.apps.jean.emergency E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NullPointerException
        at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)
        at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)
        at com.apps.jean.emergency.Fragment.Call_Fragment.loadContinentDataInSpinner(Call_Fragment.java:148)

谁能帮我解决这个问题?谢谢!

【问题讨论】:

    标签: android android-fragments fragment android-sqlite


    【解决方案1】:

    我会看看你在哪里调用 new MySQLiteHelper(getActivity())。它在 onCreate() 中吗?您的 Fragment 可能尚未附加到 Activity。试着等到你进入 onAttach() 方法,然后你就会有一个 Activity。

    【讨论】:

    • 你是对的,getActivity() 方法给了我一个空值。但是我不明白为什么它只在重新创建片段时才在第一次尝试和崩溃时起作用。我在从活动调用的片段内的公共函数中进行调用,我认为它是在 onAttach 之前调用的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-10
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多