在我的應用程序中,我有一個列表視圖,其中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