android – 如何使用Cursor Adapter刷新listView

我使用CursorAdapter创建了一个ListView.现在我正在尝试更新ListView并将值刷新到ListView.

但我无法弄明白.如何使用Loader或changeCursor()来刷新我的ListView

下面是我设置CursorAdapter的代码:

// SucessFully在这里完成

SQLDataSore datastore = new SQLDataSore(PrintContent.this);

Cursor cursor                 = datastore.getJSONData();

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

list_View.setAdapter(cursorDemo);

我的按钮onClick我正在将值更新到数据库中
// SucessFully完成

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方法:

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类

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;
        }

    }

任何帮助都得到赞赏……
});

解决方法

如果CursorDemo扩展了CursorAdapter,那么你必须使用adapter.swapCursor(cursor_update);

这应该将旧光标换成新光标并重新加载数据.使用swapCursor时,旧游标未关闭.

相关文章

Android 如何解决dialog弹出时无法捕捉Activity的back事件 在...
Android实现自定义带文字和图片的Button 在Android开发中经常...
Android 关于长按back键退出应用程序的实现最近在做一个Andr...
android自带的时间选择器只能精确到分,但是对于某些应用要求...