【问题标题】:populate expandable listview from sqlite database从 sqlite 数据库填充可扩展列表视图
【发布时间】:2014-03-11 08:28:28
【问题描述】:

这是我第一次来到这个网站。我已经在网上搜索了如何将 sqlite 数据库填充到可扩展的列表视图中,但我失败了。

我关注 these steps 关于如何创建一个可展开的列表视图并修改一些代码使其动态化。

这是我修改后的代码。这只是在可扩展列表视图上设置父文本:

public void setGroupParents() {     

    String selectQuery = "select * from " + DbHelper.TABLE_NAME + " ORDER BY "+DbHelperTablon.KEY_FNAME+" ASC ";
    SQLiteDatabase db = mHelper.getReadableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);

    if (cursor.moveToFirst()) {
        do {        
            parentItems.add(cursor.getString(1));
        } while (cursor.moveToNext());
    }       

    cursor.close();
    db.close();
    return;     
}

当我尝试运行模拟器时,程序崩溃了。

我是 android 开发的新手,我需要各位专家的帮助。在此先感谢。

哦.. 对不起。这是我的 LogCat 的结果...这只是错误部分..

03-12 07:25:10.059: 错误/AndroidRuntime(367): 致命异常: main 03-12 07:25:10.059: 错误/AndroidRuntime(367): java.lang.RuntimeException: 无法启动活动 ComponentInfo{com.Sample/com.Sample.MainListview}: java.lang.NullPointerException 03-12 07:25:10.059: 错误/AndroidRuntime(367): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1622) 03-12 07:25:10.059: 错误/AndroidRuntime(367): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1638) 03-12 07:25:10.059: 错误/AndroidRuntime(367): 在 android.app.ActivityThread.access$1500(ActivityThread.java:117) 03-12 07:25:10.059: 错误/AndroidRuntime(367): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:928) 03-12 07:25:10.059: 错误/AndroidRuntime(367): 在 android.os.Handler.dispatchMessage(Handler.java:99) 03-12 07:25:10.059: 错误/AndroidRuntime(367): 在 android.os.Looper.loop(Looper.java:123) 03-12 07:25:10.059: 错误/AndroidRuntime(367): 在 android.app.ActivityThread.main(ActivityThread.java:3647) 03-12 07:25:10.059: 错误/AndroidRuntime(367): 在 java.lang.reflect.Method.invokeNative(Native Method) 03-12 07:25:10.059: 错误/AndroidRuntime(367): 在 java.lang.reflect.Method.invoke(Method.java:507) 03-12 07:25:10.059: 错误/AndroidRuntime(367): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 03-12 07:25:10.059: 错误/AndroidRuntime(367): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 03-12 07:25:10.059:错误/AndroidRuntime(367):在 dalvik.system.NativeStart.main(本机方法) 03-12 07:25:10.059: 错误/AndroidRuntime(367): 由: java.lang.NullPointerException 引起 03-12 07:25:10.059: 错误/AndroidRuntime(367): 在 com.Sample.MainListview.setGroupParents(MainListview.java:56) 03-12 07:25:10.059: 错误/AndroidRuntime(367): 在 com.Sample.MainListview.onCreate(MainListview.java:39) 03-12 07:25:10.059: 错误/AndroidRuntime(367): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 03-12 07:25:10.059: 错误/AndroidRuntime(367): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1586) 03-12 07:25:10.059: 错误/AndroidRuntime(367): ... 11 更多 03-12 07:25:12.428: ERROR/InputDispatcher(59): channel '40703be0 com.Sample/com.Sample.Drawer (server)' ~ 消费者关闭输入通道或发生错误。事件=0x8 03-12 07:25:12.428: ERROR/InputDispatcher(59): channel '40703be0 com.Sample/com.Sample.Drawer (server)' ~ Channel 已不可恢复地损坏,将被处理!

【问题讨论】:

  • 你能发布异常吗?
  • 如果您的应用崩溃了,请在此处从 logcat 中显示您的堆栈跟踪它包含的异常
  • @Narkha 对不起,你是什么意思?我只是编辑教程链接,而不是自定义父文本,我想要它来自数据库的数据 public void setGroupParents() { parentItems.add("Fruits"); parentItems.add("鲜花"); parentItems.add("动物"); parentItems.add("鸟"); }
  • @PiyushGupta 我认为我的 sql 语句声明中存在错误或其他原因,这就是它崩溃的原因。 :)
  • 我想说的是@PiyushGupta:发布异常的堆栈跟踪以评估问题会很有用。

标签: android sqlite listview


【解决方案1】:

我猜如果你在课堂之外启动数据库对象,你的问题可能会得到解决......

【讨论】:

    猜你喜欢
    • 2018-02-19
    • 2019-12-12
    • 2023-03-13
    • 1970-01-01
    • 2023-03-12
    • 2016-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多