【问题标题】:conditionally hiding & unhiding image folders in android在android中有条件地隐藏和取消隐藏图像文件夹
【发布时间】:2016-09-27 16:24:18
【问题描述】:

以下是我的要求: 我的活动中有一个复选框。如果选中该复选框,我将添加一个“.nomedia”文件来隐藏我文件夹中的所有照片。如果未选中该复选框,我将删除“.nomedia”文件,以显示文件夹中的所有照片。我的问题是,虽然“.nomedia”文件的创建/删除成功,但图像的隐藏/取消隐藏并没有在 android 图库应用程序中发生。如何强制图库应用根据我的复选框状态显示/隐藏文件夹内容?

以下是我的代码:

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

【问题讨论】:

    标签: android checkbox android-gallery mediastore


    【解决方案1】:

    您需要强制启动媒体扫描。因此,对于 sdcard 上的媒体索引,.nomedia 不会立即反映。这样做的方法是清除图库应用程序的数据。

    【讨论】:

    • 感谢您的帮助。如何进行强制扫描? @Zingking
    猜你喜欢
    • 1970-01-01
    • 2012-08-03
    • 2015-09-30
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多