Listview中的CursorAdapter

哈米杰

我正在使用CursorAdapter在listview中读取数据库。我在列表的每个项目中都有一个复选框,当用户选中该复选框时,数据库中的“收藏夹”列将更改为“是”,并将该项目添加到收藏夹中。

一切正常,“收藏夹”列已更改,但是当我在列表中上下滚动时,该复选框将变为未选中状态。如果您重新启动应用程序,则该复选框已选中

我该怎么办:

对不起,我的英语不好:

CursorAdapter类:

public class MyAdapter extends CursorAdapter {

    Context b;   
    LayoutInflater inflater;
    @SuppressWarnings("deprecation")
    public MyAdapter(Context context, Cursor c) {
        super(context, c);
        inflater = LayoutInflater.from(context);
        b= (Context) context;
    }

    @SuppressWarnings("unused")
    @Override
    public void bindView(View view, Context context, final Cursor cursor) {
        // TODO Auto-generated method stub

        TextView tv1 = (TextView)view.findViewById(R.id.txt_name);
        TextView tv2 = (TextView)view.findViewById(R.id.txt_numer);

        tv1.setText(cursor.getString(2));
        tv2.setText(cursor.getString(3));

        final int pos = cursor.getPosition();

        final CheckBox repeatChkBx = (CheckBox)view.findViewById(R.id.favorite_check);

        String me = cursor.getString(cursor.getColumnIndex("like"));

        if (me.equals("yes")) {
            repeatChkBx.setChecked(true);
        } else {
            repeatChkBx.setChecked(false);
        }

        repeatChkBx.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View view) {
                MyDatabase MyDatabase = new MyDatabase(b);
                SQLiteDatabase mydb = MyDatabase.getWritableDatabase();
                cursor.moveToPosition(pos);

                if (repeatChkBx.isChecked()) {                   
                    mydb.execSQL("update list set like = 'yes' where id = " + cursor.getString(1));

                }else{
                    mydb.execSQL("update list set like = 'no' where id = " + cursor.getString(1));           

                }
            }
        });

        }

        protected Context getActivity() {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public View newView(Context context, Cursor cursor, ViewGroup parent) {
            return inflater.inflate(R.layout.item, parent, false);
        }
    }

屏幕截图:

在此处输入图片说明

最高

问题是,当您更新数据库时,仅数据库将更新而不是游标会适应您的游标适配器,因此您必须使用

 changeCursor(newcursor);

在更新数据库后在适配器中输入。希望对您有帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在cursoradapter中从ListView删除项目

来自分类Dev

在cursoradapter中从ListView删除项目

来自分类Dev

使用CursorAdapter在ListView中维护复选框状态

来自分类Dev

Listview使用CursorAdapter子类中的数据复制项目

来自分类Dev

用CursorAdapter中的新数据更新相同的ListView

来自分类Dev

在 ListView 中按 Id 的升序显示来自 CursorAdapter 的数据?

来自分类Dev

CursorAdapter ListView刷新

来自分类Dev

删除CursorAdapter中的项目

来自分类Dev

我总是在获取最后一行的数据,而不是使用CursorAdapter在listview中单击的行

来自分类Dev

键入searchview时,如何更改listview-cursoradapter中搜索文本的背景颜色?

来自分类Dev

是否有可能像ListView一样在recycleview中设置CursorAdapter?

来自分类Dev

如何在Android的ListView中显示sqlite数据库的结果?arrayadapter有可能吗?或cursoradapter?

来自分类Dev

我总是在获取最后一行的数据,而不是使用CursorAdapter在listview中单击的行

来自分类Dev

如何保存使用CursorAdapter的ListView的滚动位置?

来自分类Dev

使用CursorAdapter从顶部添加ListView项

来自分类Dev

使用CursorAdapter刷新ListView上的SQLite数据

来自分类Dev

处理CursorAdapter中的按钮单击

来自分类Dev

输入文本与光标字符串匹配时,如何更改listview-cursoradapter中的textview背景颜色?

来自分类Dev

具有CursorAdapter和CursorLoader的ListView.addHeader

来自分类Dev

android-如何使用CursorAdapter填充listView并回收它们

来自分类Dev

如何使用CursorAdapter将Filter设置为ListView?

来自分类Dev

使用CursorAdapter在bindView中获得位置

来自分类Dev

删除项目后,CursorAdapter中崩溃

来自分类Dev

无法从CursorAdapter内部的一行中删除EditText

来自分类Dev

CursorAdapter如何在GridView中的android上工作

来自分类Dev

CursorAdapter中基于下一项的多行布局

来自分类Dev

CursorAdapter如何在GridView中的android上工作

来自分类Dev

CursorAdapter如何从Android中的CursorLoader提供的Cursor加载数据?

来自分类Dev

Android-更改CursorAdapter中的光标如何影响UI?

Related 相关文章

  1. 1

    在cursoradapter中从ListView删除项目

  2. 2

    在cursoradapter中从ListView删除项目

  3. 3

    使用CursorAdapter在ListView中维护复选框状态

  4. 4

    Listview使用CursorAdapter子类中的数据复制项目

  5. 5

    用CursorAdapter中的新数据更新相同的ListView

  6. 6

    在 ListView 中按 Id 的升序显示来自 CursorAdapter 的数据?

  7. 7

    CursorAdapter ListView刷新

  8. 8

    删除CursorAdapter中的项目

  9. 9

    我总是在获取最后一行的数据,而不是使用CursorAdapter在listview中单击的行

  10. 10

    键入searchview时,如何更改listview-cursoradapter中搜索文本的背景颜色?

  11. 11

    是否有可能像ListView一样在recycleview中设置CursorAdapter?

  12. 12

    如何在Android的ListView中显示sqlite数据库的结果?arrayadapter有可能吗?或cursoradapter?

  13. 13

    我总是在获取最后一行的数据,而不是使用CursorAdapter在listview中单击的行

  14. 14

    如何保存使用CursorAdapter的ListView的滚动位置?

  15. 15

    使用CursorAdapter从顶部添加ListView项

  16. 16

    使用CursorAdapter刷新ListView上的SQLite数据

  17. 17

    处理CursorAdapter中的按钮单击

  18. 18

    输入文本与光标字符串匹配时,如何更改listview-cursoradapter中的textview背景颜色?

  19. 19

    具有CursorAdapter和CursorLoader的ListView.addHeader

  20. 20

    android-如何使用CursorAdapter填充listView并回收它们

  21. 21

    如何使用CursorAdapter将Filter设置为ListView?

  22. 22

    使用CursorAdapter在bindView中获得位置

  23. 23

    删除项目后,CursorAdapter中崩溃

  24. 24

    无法从CursorAdapter内部的一行中删除EditText

  25. 25

    CursorAdapter如何在GridView中的android上工作

  26. 26

    CursorAdapter中基于下一项的多行布局

  27. 27

    CursorAdapter如何在GridView中的android上工作

  28. 28

    CursorAdapter如何从Android中的CursorLoader提供的Cursor加载数据?

  29. 29

    Android-更改CursorAdapter中的光标如何影响UI?

热门标签

归档