【发布时间】:2016-10-25 04:46:25
【问题描述】:
在我的 sqlite 数据库中,我有一个表
名称:类别
列名:项目(只有一列) items 列中的行:abc、xyz 等...
但我不想创建自定义导航抽屉。所以我添加了默认的导航抽屉活动。
在我的 DatabaseHandler.java 中有一段代码可以检索 arraylist 中的所有项目,如下所示:
public ArrayList<menu> getAllMenu() {
ArrayList<menu> catList = new ArrayList<menu>();
// Select All Query
String selectQuery = "SELECT * FROM " + CATEGOTY_TABLE_NAME;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
menu menu = new menu();
menu.setItem(cursor.getString(0));
// Adding category to list
catList.add(menu);
} while (cursor.moveToNext());
}
// return category list
return catList;
}
MainActivity.java 包含:
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
我已删除所有默认菜单项,因为我不想将它们放在 xml 文件中。我想从数据库中填充它们。
但问题是,我如何调用 databasehandler.java 来获取该数组列表并将其放入导航菜单中
请帮忙...
【问题讨论】:
-
考虑 DatabaseHandler 扩展 Sqliteopenhelper 类。因此,您可以在活动类中创建 DatabaseHandler 对象并调用 getAllMenu() 方法,返回的列表可以设置为 navigationView。
-
表示 items=db.getAllMenu();。对吗?
-
但我怎样才能将项目数组列表添加到导航菜单?
-
没错……
-
我正在将所有数据从 db 获取到 arraylist,但我不知道如何将该数组列表添加到导航菜单...以便它可以在导航抽屉菜单中可见