Android从ListView和存储中的文件夹中删除文件

Android从ListView和存储中的文件夹中删除文件,android,listview,android-alertdialog,Android,Listview,Android Alertdialog,我正在尝试构建一个应用程序,该应用程序将从ListView中删除一个文件 并同时从存储中的文件夹中删除 当我运行此应用程序时,列表视图会显示文件夹中的文件。 长时间单击ListView中的文件将显示Toast消息 但对话框无法显示。该文件未从中删除 ListView或文件夹 我希望代码能帮助解决这个问题 多谢各位 这是我的密码: ListView lv = getListView(); lv.setLongClickable(true); lv.setOnItemLon

我正在尝试构建一个应用程序,该应用程序将从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.
添加alert.create;警惕。显示;在方法末尾返回false;之前;。
您的对话框将可见,然后您可以点击“是”删除该项目。

我看不到您调用alert.show来实际显示该对话框。你建造它,但不展示它。这里有一个例子说明了这一点。

谢谢Shadab Ansari。我添加了alert.create;和alert.show;紧接着上面的返回为假;现在,应用程序将显示该对话框。长时间单击“确定”按钮将从listview中删除该文件,但不会从文件夹中删除。我再次运行应用程序,文件仍显示在listview中。知道它为什么不工作吗?您还没有编写任何代码从文件夹中删除该文件。你希望它怎么被删除呢?根据我的帖子,我希望代码能帮助我同时解决这两个任务;布尔删除=file.delete;其中selectedFilePath是您要删除的文件的路径。谢谢。该代码成功地从文件夹中删除了该文件。除此之外,在长时间单击时,对话框将按其应有的方式显示,但当我释放长时间单击时,它会传播并导致一个单击事件,在长时间单击对话框的顶部显示一个对话框。如何防止这种传播?