2016-05-29 28 views
0

Folgendes ist meine Anforderung: Ich habe ein Kontrollkästchen in meiner Aktivität. Wenn das Kontrollkästchen aktiviert ist, werde ich eine '.nomedia' Datei hinzufügen, um alle Fotos in meinem Ordner auszublenden. Wenn das Kontrollkästchen deaktiviert ist, lösche ich die '.nomedia' Datei, um alle Fotos im Ordner anzuzeigen. Mein Problem ist, obwohl das Erstellen/Löschen von '.nomedia' Datei erfolgreich ist, das Ausblenden/Einblenden der Bilder nicht in der Android Galerie App passiert. Wie kann ich erzwingen, dass die Galerie-App den Ordnerinhalt entsprechend meinem Kontrollkästchenstatus ein-/ausblenden kann?Bedingte Verstecken und Einblenden von Bildordnern in Android

Nachstehend ist mein Code:

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(); 
     } 
    } 

Antwort

0

Sie benötigen Startmedienüberprüfung zu erzwingen. So zum Index der Medien auf der SD-Karte, wird .nomedia nicht sofort widerspiegeln. Auf dem Weg, dies zu tun, ist es, die Daten der Galerie App zu löschen.

+0

Danke für die Hilfe. Wie macht man einen Force Scan? @ Zingking – Adi