我正在尝试构建一个将从ListView中删除文件的应用程序 并从存储中的文件夹中同时进行。
当我运行此应用程序时,ListView会显示该文件夹中的文件。 长按ListView中的文件会显示Toast消息 但对话框无法显示。该文件未从中删除 ListView或文件夹。
我很感激代码帮助解决这个问题。
谢谢。
这是我的代码:
ListView lv = getListView();
lv.setLongClickable(true);
lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(final AdapterView<?> arg0, View arg1, final int position, long arg3) {
AlertDialog.Builder alert = new AlertDialog.Builder(FileRemoveActivity.this);
// this Title Fails to display
alert.setTitle("Delete File");
// this Message Fails to display
alert.setMessage("Are you sure you want to delete this file?");
// this Toast 'position' value Does display
Toast.makeText(getApplicationContext(), " " + position, Toast.LENGTH_LONG).show();
alert.setCancelable(false);
// the Yes button Fails to display
alert.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// compiler warning this code is an Unchecked Cast
ArrayAdapter<String> adapter = (ArrayAdapter<String>) arg0.getAdapter();
// the file at 'position' is Not removed
adapter.remove(adapter.getItem(position));
adapter.notifyDataSetChanged();
}
});
// the Cancel button Fails to display
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
return false;
}
}); // KJP NOTE: Test 07-May-2016 End Test.
答案 0 :(得分:0)
在alert.create(); alert.show();
之前的方法末尾添加return false;
。
您的对话框将可见,然后您可以点按Yes
以删除该项目。
答案 1 :(得分:0)
我没有看到你调用alert.show()来实际显示对话框。你建立它,但不显示它。有一个例子说明这是如何工作的here。