android - 避免无效的目录路径

标签 android

我有一个常量,它决定了设备的存储路径。

File STORG_PTH = new File (Environment.getExternalStorageDirectory(), "/");

用户可以通过在 editText 中输入来确定自己的下载目录。

如果它是有效路径,它会使用以下代码进行检查,但是如果用户输入更多斜线(/),例如“/storage/emulated/0//just/to///see”,我该如何避免?

提前谢谢你。

File TEST = Constants.STORG_PTH;
    String STORAGEPTH = TEST.toString();
    String Test = "/storage/emulated/0/justatest/to/see";

    if (Test.startsWith(STORAGEPTH)) {
        Log.d("STORAGE PATH: ", STORAGEPTH + " IS VALID!");
    }
    else{
        Log.d("STORAGE PATH: ", STORAGEPTH + " IS INVALID!");
    }

最佳答案

您可以使用 InputFilter 来阻止特定字符,如下所示:

InputFilter filter = new InputFilter() {

String blockCharacter = "/";

      @Override
      public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
         if (source != null && blockCharacter.contains(("" + source))) {
               return "";
            }
            return null;
        }
    };

然后:

EditText e = (EditText)findViewById(R.id.editText1);
e.setFilters(new InputFilter[] { filter });

关于android - 避免无效的目录路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27638085/

相关文章:

java - 将类的引用传递给另一个类android错误

Android 10 无法注册 Sensor.TYPE_STEP_COUNTER

android - Butterknife vs AndroidAnnotations

android - 无法在 Windows 10 上卸载 Android Studio

java - onClickListener 使用 Butterknife

android - 自动重新连接到互联网

Android sqlite - 选择字段为空或为空的记录

android - 在 java 代码中设置时,外部 View 的 LayoutParams 宽度被忽略(而不是 xml 布局)

java - SQLite DB创建表时名称列错误

android - Crashlytics 正在向 Fabric 报告,但 Firebase Crashlytics 中没有可用的痕迹