2016-05-10 15 views
0

ListView とストレージ内のフォルダから同時にファイルを削除するアプリを作成しようとしています。Androidリストビューからのファイルとストレージ内のフォルダからのファイルの削除

このアプリケーションを実行すると、ListViewはフォルダ内のファイルを表示します。 ListViewのファイルを長時間クリックすると、トーストメッセージ が表示されますが、ダイアログが表示されません。ファイルは、 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

return false;前に、メソッドの最後にalert.create(); alert.show();を追加します。

は、ここに私のコードです。 ダイアログが表示され、Yesをタップしてアイテムを削除できます。

+0

ありがとうShadab Ansari。私はalert.create()を追加しました。およびalert.show();すぐ上のfalseを返します。 これで、ダイアログが表示されます。 OKボタンを長押しすると、ファイルはリストビューから削除されますが、フォルダからは削除されません。 私は再びアプリケーションを実行し、ファイルはまだリストビューに表示されます。 なぜそれが機能していないか考えてみましょうか? – user2308699

+0

あなたはフォルダからファイルを削除するためのコードを書いていません。どのようにそれが削除されることを期待していますか? –

+0

私のポストでは、両方のタスクを同時に解決するコードを参考にしていただければ幸いです。 – user2308699

0

alert.show()を実際に表示してダイアログが表示されることはありません。あなたはそれを構築するが、それを表示しない。これがどのように動作するかの例がありますhere

関連する問題