Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 数据库删除后未能刷新ListActivity_Android_Database_Refresh_Listactivity - Fatal编程技术网

Android 数据库删除后未能刷新ListActivity

Android 数据库删除后未能刷新ListActivity,android,database,refresh,listactivity,Android,Database,Refresh,Listactivity,我在我的列表活动上设置了一个长点击,它调用一个警报对话,选择删除或取消,然后是另一个警报对话以确认删除 但是,我需要刷新列表以显示更改,但看不到如何执行(注意使用ResourceCursorAdapter填充列表): 公共类检查活动扩展了ListActivity{ 私人检查; 私有静态最终整数活动_CREATE=0; 专用RMDbAdapter rmDbHelper; //private AlertDialog LongClickOptions对话框; 私人警报对话框单击选项对话框; @凌驾 创

我在我的
列表活动
上设置了一个
长点击
,它调用一个
警报对话
,选择
删除
取消
,然后是另一个
警报对话
以确认删除

但是,我需要刷新列表以显示更改,但看不到如何执行(注意使用
ResourceCursorAdapter
填充列表):

公共类检查活动扩展了ListActivity{
私人检查;
私有静态最终整数活动_CREATE=0;
专用RMDbAdapter rmDbHelper;
//private AlertDialog LongClickOptions对话框;
私人警报对话框单击选项对话框;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_inspection);
setupview();
setLongClick();
rmDbHelper=新的RMDbAdapter(this);
rmDbHelper.open();
//获取列表项的光标
Cursor listCursor=rmDbHelper.fetchAllInspections();
开始管理游标(列表游标);
//设置自定义列表适配器
setListAdapter(新的MyListAdapter(这个,listCursor));
}
私有void setUpViews(){
newInspection=(按钮)findViewById(R.id.new_inspection);
newInspection.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
createInspection();
}
}); 
}
私有void setLongClick(){
ListView lv=getListView();
lv.setOnItemLongClickListener(新的OnItemLongClickListener(){
公共布尔值长单击(AdapterView arg0,视图arg1,int行,最终长id){
Cursor Cursor=(Cursor)rmDbHelper.fetchInspection(id);
String inspectionRef=RMUtilities.notEmpty(cursor.getString(cursor.getColumnIndex(
RMDbAdapter.INSPECTION_REF)),“参考未知”);
String companyName=RMUtilities.notEmpty(cursor.getString(cursor.getColumnIndex(
RMDbAdapter.INSPECTION_COMPANY)),“公司未知”);
最终字符串inspectionDialogueText=“(“+inspectionRef+”,“+companyName+”);
ClickOptions Dialog=新建AlertDialog.Builder(检查活动。此)
.setTitle(检查对话框文本)
.setMessage(R.string.general\u text\u select\u选项)
.setPositiveButton(R.string.general_按钮_删除,新建AlertDialog.OnClickListener(){
私有AlertDialog confirmDeleteDialog;
public void onClick(DialogInterface dialog,int which){
confirmDeleteDialog=新建AlertDialog.Builder(InspectionActivity.this)
.setTitle(R.string.general\u text\u确认)
.setMessage(R.string.general\u text\u confirm\u delete)
.setPositiveButton(R.string.general_按钮_是,新建AlertDialog.OnClickListener(){
public void onClick(DialogInterface dialog,int which){
rmDbHelper.deleteInspection(id);
**//此处需要刷新语句**
}
})
.setNegativeButton(R.string.general_button_cancel,new AlertDialog.OnClickListener(){
public void onClick(DialogInterface dialog,int which){
confirmDeleteDialog.cancel();
}
})
.create();
confirmDeleteDialog.show();
}
})                  
.setNegativeButton(android.R.string.cancel,新建AlertDialog.OnClickListener(){
public void onClick(DialogInterface dialog,int which){
单击选项对话框。取消();
}
})
.create();
单击选项Dialog.show();
返回true;
} 
});
}
//在ListActivity类中,创建一个扩展ResourceCursorAdapter的新内部类。
//此内部类是自定义游标适配器,用于管理数据绑定到列表项的方式:
私有类MyListAdapter扩展ResourceCursorAdapter{
公共MyListAdapter(上下文,游标){
超级(上下文、右布局、检查行、光标);
} 
@凌驾
public void bindView(视图、上下文上下文、光标){
TextView title=(TextView)view.findViewById(R.id.inspection\u row\u item\u main\u title);
title.setText(cursor.getString(
cursor.getColumnIndex(RMDbAdapter.INSPECTION_REF));
TextView description=(TextView)view.findViewById(R.id.inspection\u row\u item\u description);
String companyName=RMUtilities.notEmpty(cursor.getString(cursor.getColumnIndex(
RMDbAdapter.INSPECTION_COMPANY)),“公司未知”);
String-inspectionDate=RMUtilities.notEmpty(cursor.getString(cursor.getColumnIndex(
RMDbAdapter.INSPECTION_DATE)),“日期未知”);
description.setText(“+companyName+”,“+inspectionDate+”);
}
}
私人检查(){
Intent i=新Intent(this,InspectionEdit.class);
startActivityForResult(i,活动\创建);
}
受保护的void onListItemClick(列表视图l、视图v、最终整数位置、最终长id){
Cursor Cursor=(Cursor)rmDbHelper.fetchInspection(id);
String inspectionRef=RMUtilities.notEmpty(cursor.getString(cursor.getColumnIndex(
RMDbAdapter.INSPECTION_REF)),“参考未知”);
String companyName=RMUtilities.notEmpty(cursor.getString(cursor.getColumnIndex(
RMDbAdapter.INSPECTION_COMPANY)),“公司未知”);
最终字符串inspectionDialogueText=“(“+inspectionRef+”,“+companyName+”);
super.onListItemClick(l、v、pos、id);
单击选项对话框=新建A
public class InspectionActivity extends ListActivity {
private Button newInspection;
private static final int ACTIVITY_CREATE=0;

private RMDbAdapter rmDbHelper;
//private AlertDialog longClickOptionsDialog;
private AlertDialog clickOptionsDialog;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_inspection);
    setUpViews();
    setLongClick();

    rmDbHelper = new RMDbAdapter(this);
    rmDbHelper.open();

    // Get a Cursor for the list items
    Cursor listCursor = rmDbHelper.fetchAllInspections();
    startManagingCursor(listCursor);           

    // set the custom list adapter     
    setListAdapter(new MyListAdapter(this, listCursor));


}



private void setUpViews() {
    newInspection = (Button)findViewById(R.id.new_inspection);
    newInspection.setOnClickListener(new View.OnClickListener() {                       
        public void onClick(View v) {
            createInspection();
        }
    }); 

}

private void setLongClick() {
    ListView lv = getListView(); 
    lv.setOnItemLongClickListener(new OnItemLongClickListener() { 
        public boolean onItemLongClick(AdapterView<?> arg0, View arg1,int row, final long id) {
            Cursor cursor = (Cursor) rmDbHelper.fetchInspection(id);

            String inspectionRef = RMUtilities.notEmpty(cursor.getString(cursor.getColumnIndex( 
                    RMDbAdapter.INSPECTION_REF)), "Reference unknown"); 
            String companyName = RMUtilities.notEmpty(cursor.getString(cursor.getColumnIndex( 
                    RMDbAdapter.INSPECTION_COMPANY)), "company unknown"); 
            final String inspectionDialogueText = "(" + inspectionRef + ", " + companyName + ")"; 

            clickOptionsDialog = new AlertDialog.Builder(InspectionActivity.this)
            .setTitle(inspectionDialogueText)
            .setMessage(R.string.general_text_select_option)
            .setPositiveButton(R.string.general_button_delete, new AlertDialog.OnClickListener(){
                private AlertDialog confirmDeleteDialog;
                public void onClick(DialogInterface dialog, int which){
                    confirmDeleteDialog = new AlertDialog.Builder(InspectionActivity.this)
                    .setTitle(R.string.general_text_confirmation)
                    .setMessage(R.string.general_text_confirm_delete)
                    .setPositiveButton(R.string.general_button_yes, new AlertDialog.OnClickListener(){
                        public void onClick(DialogInterface dialog, int which){
                            rmDbHelper.deleteInspection(id);

**//REFRESH STATEMENT NEEDED HERE..**
                            }
                        })
                    .setNegativeButton(R.string.general_button_cancel, new AlertDialog.OnClickListener(){
                        public void onClick(DialogInterface dialog, int which){
                            confirmDeleteDialog.cancel();
                            }
                        })
                    .create();
                    confirmDeleteDialog.show();
                    }
                })                  
            .setNegativeButton(android.R.string.cancel, new AlertDialog.OnClickListener(){
                public void onClick(DialogInterface dialog, int which){
                    clickOptionsDialog.cancel();
                    }
                })
            .create();
            clickOptionsDialog.show();
            return true;
        } 
    });
}

// In your ListActivity class, create a new inner class that extends ResourceCursorAdapter. 
//This inner class is the custom CursorAdapter we will use to manage how data is bound to a list item:

private class MyListAdapter extends ResourceCursorAdapter { 

    public MyListAdapter(Context context, Cursor cursor) { 
        super(context, R.layout.inspection_row, cursor);
    } 

    @Override
    public void bindView(View view, Context context, Cursor cursor) { 
        TextView title = (TextView) view.findViewById(R.id.inspection_row_item_main_title);
        title.setText(cursor.getString(                            
                cursor.getColumnIndex(RMDbAdapter.INSPECTION_REF)));

        TextView description = (TextView) view.findViewById(R.id.inspection_row_item_description);        

        String companyName = RMUtilities.notEmpty(cursor.getString(cursor.getColumnIndex(
                        RMDbAdapter.INSPECTION_COMPANY)), "Company unknown");
        String inspectionDate = RMUtilities.notEmpty(cursor.getString(cursor.getColumnIndex(
                        RMDbAdapter.INSPECTION_DATE)), "date unknown");
        description.setText("(" + companyName + ", " + inspectionDate + ")");
    }
}


private void createInspection() {
    Intent i = new Intent(this, InspectionEdit.class);
    startActivityForResult(i, ACTIVITY_CREATE);
}


protected void onListItemClick(ListView l, View v, final int pos, final long id){


    Cursor cursor = (Cursor) rmDbHelper.fetchInspection(id);

    String inspectionRef = RMUtilities.notEmpty(cursor.getString(cursor.getColumnIndex( 
            RMDbAdapter.INSPECTION_REF)), "Reference unknown"); 
    String companyName = RMUtilities.notEmpty(cursor.getString(cursor.getColumnIndex( 
            RMDbAdapter.INSPECTION_COMPANY)), "company unknown"); 
    final String inspectionDialogueText = "(" + inspectionRef + ", " + companyName + ")"; 

    super.onListItemClick(l, v, pos, id);
    clickOptionsDialog = new AlertDialog.Builder(InspectionActivity.this)
    .setTitle(inspectionDialogueText)
    .setMessage(R.string.general_text_select_option)
    .setPositiveButton(R.string.general_button_open, new AlertDialog.OnClickListener(){
        public void onClick(DialogInterface dialog, int which) {
            Intent i = new Intent(InspectionActivity.this, AreaActivity.class);
            i.putExtra("intentID", id);
            startActivityForResult(i, ACTIVITY_CREATE);
            }
        })
    .setNeutralButton(R.string.general_button_edit, new AlertDialog.OnClickListener(){
        public void onClick(DialogInterface dialog, int which){
            Intent i = new Intent(InspectionActivity.this, InspectionEdit.class);
            i.putExtra("intentID", id);
            startActivityForResult(i, ACTIVITY_CREATE);
            }
        })

    .setNegativeButton(android.R.string.cancel, new AlertDialog.OnClickListener(){
        public void onClick(DialogInterface dialog, int which){
            clickOptionsDialog.cancel();
            }
        })
    .create();
    clickOptionsDialog.show();

}
youradapter.notifyDataSetChanged()