如何刷新使用光标适配器列表视图 [英] how to refresh the listView using the Cursor Adapter

查看:251
本文介绍了如何刷新使用光标适配器列表视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了一个的ListView 使用的CursorAdapter 。我现在想更新的ListView 并刷新值到ListView。

I have created a ListView using CursorAdapter . Now I am Trying to update the ListView and Refresh the value to the ListView .

但我无法弄清楚。如何使用装载机工作 changeCursor()刷新我的的ListView

But I am not able to figure out . How to work with Loader or changeCursor() to refresh my ListView

下面是设置的我的code中的的CursorAdapter

Below is My code of setting the CursorAdapter :

//成功地在这里完成的。

//SucessFully done here

SQLDataSore datastore = new SQLDataSore(PrintContent.this);

Cursor cursor                 = datastore.getJSONData();

final CursorDemo cursorDemo = new CursorDemo(PrintContent.this, cursor);

list_View.setAdapter(cursorDemo);

我的按钮 的onClick 我更新值插入数据库
//成功地完成

My Button onClick I am updating the Value into the Database //SucessFully Done

btn_check.setOnClickListener( new OnClickListener() {

            @Override
            public void onClick(View view ) {

                String editTextValue = edit_check.getText().toString();

                if (editTextValue!=null) {


                    SQLDataSore sqlDataSore = new SQLDataSore(PrintContent.this);

                    Cursor cursor_update = sqlDataSore.updateData(editTextValue);

//Here How Should I update my ListView ...?
                }

            }

我的UpdateData方法:

My UpdateData Method:

public Cursor updateData(String editContent){

        SQLiteDatabase updateContent = getReadableDatabase();


        Cursor cursor_update = updateContent.rawQuery( "update " +TABLE_NAME + " set content = '"+ editContent
                +"' "+" where _id = 357", null);

        return cursor_update;
    }

CursorDemo类

CursorDemo Class

public class CursorDemo extends CursorAdapter{

        public CursorDemo(Context context, Cursor c) {

            super(context, c , false);
            // TODO Auto-generated constructor stub
        }

        @Override
        public void changeCursor(Cursor cursor) {
            // TODO Auto-generated method stub
            super.changeCursor(cursor);
        }

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

            TextView txt_content        = (TextView) view.findViewById(R.id.txt_content);
            TextView txt_likes_count    = (TextView) view.findViewById(R.id.txt_likescount);
            TextView txt_name         = (TextView) view.findViewById(R.id.txt_name);
            TextView txt_display_name = (TextView) view.findViewById(R.id.txt_display_name);

            txt_content.setText(cursor.getString(cursor.getColumnIndex("content")));

        }

        @Override
        public View newView(Context context , Cursor cursor, ViewGroup viewGroup) {
            // TODO Auto-generated method stub
            LayoutInflater inflater = LayoutInflater.from(context);
            View view = inflater.inflate(R.layout.message_row_view, viewGroup ,false);

            return view;
        }

    }

任何帮助pciated鸭$ P $ ...
            });

Any Help is Appreciated... });

推荐答案

如果CursorDemo延伸的CursorAdapter,那么你必须使用 adapter.swapCursor(cursor_update);

If CursorDemo extends CursorAdapter, then you have to use adapter.swapCursor(cursor_update);

这应该关闭旧光标,并重新加载数据用新的

That should close old cursor, and reload data with the new one

这篇关于如何刷新使用光标适配器列表视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆