Android 如何从列表中删除行,重新加载listView,然后在现有文件中写入字符串?
我想从数组中删除一个数组索引,然后用我的新数组重新加载listView,然后在android中向现有文件写入一个字符串。我正在使用以下代码:Android 如何从列表中删除行,重新加载listView,然后在现有文件中写入字符串?,android,android-listview,android-alertdialog,android-adapter,android-file,Android,Android Listview,Android Alertdialog,Android Adapter,Android File,我想从数组中删除一个数组索引,然后用我的新数组重新加载listView,然后在android中向现有文件写入一个字符串。我正在使用以下代码: OnItemLongClickListener longClickListener = new OnItemLongClickListener(){ @Override public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
OnItemLongClickListener longClickListener = new OnItemLongClickListener(){
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
itemPosition = position;
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
alertDialogBuilder.setTitle("Warning");
alertDialogBuilder
.setMessage("Are you sure?")
.setCancelable(false)
.setPositiveButton("Yes",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
ArrayList<String> itemsList = new ArrayList<String>();
for(int i=0; i<items.length; i++){
itemsList.add(items[i]);
}
itemsList.remove(itemPosition);
items = new String[itemsList.size()];
for(int i=0; i<itemsList.size(); i++){
items[i] = itemsList.get(i);
}
adapter.notifyDataSetChanged();
String newData = "";
for(int i=0; i<items.length; i++){
newData = newData+items[i];
if(i < items.length-1){
newData = newData+"NEXTLINE";
}
}
// write string to existing file
try {
fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(newData.getBytes());
fos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
})
.setNegativeButton("No",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// if this button is clicked, just close
// the dialog box and do nothing
dialog.cancel();
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
return true;
}
};
OnItemLongClickListener longClickListener=新建OnItemLongClickListener(){
@凌驾
长单击(AdapterView arg0、视图arg1、,
整数位置,长arg3){
项目位置=位置;
AlertDialog.Builder alertDialogBuilder=新建AlertDialog.Builder(上下文);
alertDialogBuilder.setTitle(“警告”);
alertDialogBuilder
.setMessage(“您确定吗?”)
.setCancelable(错误)
.setPositiveButton(“是”,新的DialogInterface.OnClickListener(){
public void onClick(DialogInterface对话框,int-id){
ArrayList itemsList=新的ArrayList();
对于(int i=0;i来说,问题在于下面的代码片段……可能是您的列表太大,并且您正在循环三次,在这两次循环之间,您也正在刷新列表
ArrayList<String> itemsList = new ArrayList<String>();
for(int i=0; i<items.length; i++){
itemsList.add(items[i]);
}
itemsList.remove(itemPosition);
items = new String[itemsList.size()];
for(int i=0; i<itemsList.size(); i++){
items[i] = itemsList.get(i);
}
adapter.notifyDataSetChanged();
String newData = "";
for(int i=0; i<items.length; i++){
newData = newData+items[i];
if(i < items.length-1){
newData = newData+"NEXTLINE";
}
arraylistitemslist=new ArrayList();
对于(int i=0;i来说,问题在于下面的代码片段……可能是您的列表太大,并且您正在循环三次,在这两次循环之间,您也正在刷新列表
ArrayList<String> itemsList = new ArrayList<String>();
for(int i=0; i<items.length; i++){
itemsList.add(items[i]);
}
itemsList.remove(itemPosition);
items = new String[itemsList.size()];
for(int i=0; i<itemsList.size(); i++){
items[i] = itemsList.get(i);
}
adapter.notifyDataSetChanged();
String newData = "";
for(int i=0; i<items.length; i++){
newData = newData+items[i];
if(i < items.length-1){
newData = newData+"NEXTLINE";
}
arraylistitemslist=new ArrayList();
对于(int i=0;i它锁定在什么位置?调试器停止在哪里?现在它工作的唯一区别是,当我在“删除警报”中单击“是”时,listView不会更新。但是当我返回并打开该listView时,它会更新。当我单击“是”警报按钮后,如何立即刷新我的listView?它锁定在什么位置?Wh调试器停止了吗?现在它的唯一区别是,当我在“删除警报”中单击“是”时,listView不会更新。但当我返回并打开该listView时,它会更新。你知道当我单击警报的“是”按钮后,如何立即刷新我的listView吗?现在它的唯一区别是listView不是updated当我在删除警报中单击“是”时。但是当我返回并进入该列表视图时,它会更新。知道我在单击警报的“是”按钮后如何立即刷新我的列表视图吗?现在唯一的区别是,当我在删除警报中单击“是”时列表视图不会更新。但是当我返回并进入该列表视图时,它会更新已更新。当我单击警报的“是”按钮后,您知道如何立即刷新我的列表视图吗?