在我的应用程序中,我有一个列表视图,其中multichoicemodelistener启用。我想使用multichoicemodelistener删除内部存储文件(显示在我的列表视图中的文件)。但没有运气。android multichoicemodelistener删除内部存储文件
这里是我的代码
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId()) {
case R.id.list_context_delte:
SparseBooleanArray sparseBooleanArray = getListView().getCheckedItemPositions();
for(int i = sparseBooleanArray.size() -1; i >= 0; i--)
context.deleteFile(sparseBooleanArray.keyAt(i));
mAdapter.notifyDataSetChanged();
mode.finish();
Toast.makeText(ShowListActivity.this, R.string.deleted, Toast.LENGTH_SHORT).show();
mode.finish();
}
return false;
}
我得到了一个错误,指出:在类型上下文的方法DELETEFILE(字符串)不适用于参数(INT)
任何想法?
UPDATE 我已经编辑我的代码,所以知道它看起来像
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId()) {
case R.id.list_context_delte:
nr = 0;
SparseBooleanArray sparseBooleanArray = getListView().getCheckedItemPositions();
for(int i = sparseBooleanArray.size() -1; i >= 0; i--)
if (sparseBooleanArray.get(i)) {
String items = getListView().getAdapter().getItem(sparseBooleanArray.keyAt(i)).toString();
File dir = getFilesDir();
File file = new File(dir, (items));
file.delete();
RowItem selecteditem = mAdapter.getItem(sparseBooleanArray.keyAt(i));
mAdapter.remove(selecteditem);
mAdapter.notifyDataSetChanged();
Toast.makeText(ShowListActivity.this,items+ R.string.deleted, Toast.LENGTH_SHORT).show();
}
mode.finish();
}
return false;
}
我按下删除键后,文件(S)已经一去不复返了。但是,当我退出活动并返回活动时,所有已删除的文件都会回来。 文件是否未从内部存储器正确删除? 有人有建议吗?
你已经调查什么.getCheckedItemPositions()主罚?和.keyAt(i)?请做。 – greenapps 2014-11-03 16:14:10
我也试图用context.DeleteFile(项目)删除文件。但再次没有运气 – Thor1401 2014-11-03 18:13:32