gpt4 book ai didi

android - 将光标实现到 recyclerview 适配器中

转载 作者:行者123 更新时间:2023-11-30 01:53:18 27 4
gpt4 key购买 nike

我目前正在开发一个 Android 应用程序,该应用程序使用本地数据库中的数据来提供我的内容 Activity 。我在本地数据库中使用 RecycleView 和 Cardview

我已经实现了回收 View 适配器,但是当出现return 问题时,我的回收 View 适配器的游标适配器失败了。我想我做的事情不对。到目前为止,我尝试过的内容如下。

下面的代码假设从数据库处理程序设置数据,

public class Items extends Activity{

static Context context;
private String name;
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
private static DatabaseHandler db = new DatabaseHandler(context);

public static Items fromCursor(Cursor cursor) {
ArrayList<String> users;
users = new ArrayList<String>();
users = db.AllItems();
return users;
}

还有回收 View 中的绑定(bind) View 持有者类

 public void onBindViewHolder(ViewHolder viewHolder, Cursor cursor) {
Items myListItem = Items.fromCursor(cursor);
viewHolder.mTextView.setText(myListItem.getName());

}

最后,从数据库处理程序中获取所有项目

    public ArrayList<String> AllItems() {
ArrayList<String> user = new ArrayList<String>();

// Select All Query
String selectQuery = "SELECT * FROM " + TABLE_LOGIN;

SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);

// looping through all rows and adding to list
if (c.moveToFirst()) {
do {
String firstName = c.getString(c.getColumnIndex(KEY_FIRSTNAME));

user.add("" + firstName );
} while (c.moveToNext());
}
return user;
}

我发现很难通过 Items 类将光标或数据实现到 onBindViewHolder 方法。如果有人可以帮助我修复它,我将不胜感激。我非常感激。

最佳答案

有一种更简洁的方法可以使用 RecyclerView 实现 Cursor。

创建 YourAdapter 扩展 CursorRecyclerAdapter - 您将拥有所有 RecyclerView.Adapter 功能以及 swapCursor()changeCursor() 和一个带有 Cursor 的构造函数参数。

如果您确实需要自定义实现,您可以使用上面的类作为开始。

为了更好地获取光标,我建议查看如何 Run a Query with a CursorLoader

关于android - 将光标实现到 recyclerview 适配器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32682914/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com