使用SimpleCursorAdapter的ListView

时间:2011-09-06 06:06:07

标签: android listview simplecursoradapter

在我的应用程序中,我使用列表视图显示带有菜名的菜单菜单

这是使用适配器将查询中的数据绑定到listview的代码:

private void getDishes() {

    DBAdapter db = new DBAdapter(this);

    db.open();
    Cursor cursor = db.getAllDishes();
    cursor.moveToFirst();
    Log.w("ppp","kk - " + cursor.moveToFirst());
    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
            R.layout.list_item, cursor, new String[] { DBAdapter.DishName },
            new int[] {R.id.dishName });

    setListAdapter(adapter);
    db.close();
}

我的查询代码如下所示:

public Cursor getAllDishes()
{
    return db.query(DATABASE_TABLE, new String[] {DishName},null,null,null,null,null);
}

非常感谢任何帮助/评论,因为我已经坚持了近一个星期了。

1 个答案:

答案 0 :(得分:0)

你能明确解释一下你的问题是什么吗?

我的建议改变

    public Cursor getAllDishes()
{
    return db.query(DATABASE_TABLE, new String[] {DishName},null,null,null,null,null);
}

    public Cursor getAllDishes()
    {
    Cursor dishes = db.query(DATABASE_TABLE, new String[] {DishName},null,null,null,null,null);
if(dishes != null)
dishes.moveToFirst();
        return dishes;
    }

然后

getDishes()方法中写如下

private void getDishes() {

    DBAdapter db = new DBAdapter(this);

    db.open();
    Cursor cursor = db.getAllDishes();
    SimpleCursorAdapter adapter = new SimpleCursorAdapter(YourActivity.this,
            R.layout.list_item, cursor, new String[] { DBAdapter.DishName },
            new int[] {R.id.dishName });
    setListAdapter(adapter);
    db.close();
}