Android - 如何使用一条记录(光标)填充ListView中多个列表项的数据?

发布于 2024-12-18 01:45:32 字数 1075 浏览 0 评论 0原文

有谁知道如何实现以下要求?

查询数据库时,只返回一条记录。 该记录将用于填充 ListView 中的几个列表项(例如 5 个条目)。

由于只有一条记录,我在填充第二到第五条记录时遇到困难。

public class TestCursorAdapter extends CursorAdapter {
    List list = new ArrayList();

    public TestCursorAdapter (Context context, Cursor c, boolean autoRequery) {
        super(context, c, autoRequery);
            list.add("Test 1");
            list.add("Test 2");
            list.add("Test 3");
            list.add("Test 4");
            list.add("Test 5");
    }

    public View newView(Context context, Cursor cursor, ViewGroup parent) {
           // cursor will only return one record, but it needs to populate five records (list size is 5)
    }         

    public void bindView(View view, Context context, Cursor cursor) {
           // cursor will only return one record, but it needs to populate five records (list size is 5)
    }

    public int getCount() {
        return list.size();
    }

    public int getViewTypeCount() {
            return 5;
    }
}

我正在使用 CursorLoader 从数据库查询数据。

谢谢

Does anyone know how to achieve the below requirement?

When the database is queried, there is only one record returned.
This record will be used to populate few list item in ListView (say 5 entries).

Since it's only one record, I am facing difficulties to populate entries for second up to fifth entries.

public class TestCursorAdapter extends CursorAdapter {
    List list = new ArrayList();

    public TestCursorAdapter (Context context, Cursor c, boolean autoRequery) {
        super(context, c, autoRequery);
            list.add("Test 1");
            list.add("Test 2");
            list.add("Test 3");
            list.add("Test 4");
            list.add("Test 5");
    }

    public View newView(Context context, Cursor cursor, ViewGroup parent) {
           // cursor will only return one record, but it needs to populate five records (list size is 5)
    }         

    public void bindView(View view, Context context, Cursor cursor) {
           // cursor will only return one record, but it needs to populate five records (list size is 5)
    }

    public int getCount() {
        return list.size();
    }

    public int getViewTypeCount() {
            return 5;
    }
}

I am using CursorLoader to query data from database.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

メ斷腸人バ 2024-12-25 01:45:32

CursorAdapter 仅适用于特定格式的Cursor,在ListView 中每行一行。您最好编写自己的自定义扩展 BaseAdapter 其支持数据是您唯一的光标。然后您可以准确指定如何获取 getView()

CursorAdapter is only suited to Cursors of a particular format, with one row per row in the ListView. You'd be better off writing your own custom extension of BaseAdapter whose backing data is your unique Cursor. Then you can specify exactly how to get the data for each position in getView().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文