2016-05-29 13 views
0

以下は私の要求です: 私の活動にはチェックボックスがあります。このチェックボックスをオンにすると、「.nomedia」ファイルが追加され、フォルダ内のすべての写真が非表示になります。このチェックボックスをオフにすると、フォルダ内のすべての写真を表示するために、 '.nomedia'ファイルが削除されます。私の問題は、 '.nomedia'ファイルの作成/削除が成功したにもかかわらず、アンドロイドギャラリーアプリでイメージの非表示/非表示が行われていないことです。ギャラリーアプリケーションで、チェックボックスの状態に従ってフォルダの内容を表示/非表示にするにはどうすればよいですか?アンドロイドの画像フォルダを条件付きで非表示と非表示にする

次は私のコードです:

CheckBox checkBox = (CheckBox) findViewById(R.id.checkBox1); 
if (checkBox.isChecked()) { 
           hideFolder();          
          } else { 
           unHideFolder();          
          } 

    private void hideFolder() { 
     File targetDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + CONSTANTS.MYFOLDERPATH); 
     File noMediaFile = new File(targetDir, ".nomedia"); 
     try { 
      if (!noMediaFile.exists()) { 
       noMediaFile.createNewFile(); 
      } 
     } catch (IOException ex) { 
      ex.printStackTrace(); 
     } 
    } 

    private void unHideFolder() { 
     File targetDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + CONSTANTS.MYFOLDERPATH); 
     File noMediaFile = new File(targetDir, ".nomedia"); 
     if (noMediaFile.exists()) { 
      noMediaFile.delete(); 
     } 
    } 

答えて

0

あなたが開始メディアスキャンを強制する必要があります。したがって、sdcard上のメディアのインデックスには、.nomediaはすぐに反映されません。それを行うにはギャラリーアプリのデータをクリアすることです。

+0

ありがとうございました。フォーススキャンの仕方は? @シンキング – Adi

関連する問題