Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从首选项打开的文件选择器意图_Android_Preference - Fatal编程技术网

Android 从首选项打开的文件选择器意图

Android 从首选项打开的文件选择器意图,android,preference,Android,Preference,我正在尝试学习设置UI构建,我在android文档中看到偏好可以是一个意图,但我现在想知道的是,该意图是否可以返回一个偏好值(例如通过启动文件选择器活动选择的文件名) 或者,如果我想选择一个文件或目录名作为首选项设置的一部分,是否需要构建自定义首选项视图?在任何地方都有这样的例子吗?(似乎人们会对我做很多事)。[编辑] 首先在preference.xml文件中创建首选项 <?xml version="1.0" encoding="utf-8"?> <PreferenceScre

我正在尝试学习设置UI构建,我在android文档中看到偏好可以是一个意图,但我现在想知道的是,该意图是否可以返回一个偏好值(例如通过启动文件选择器活动选择的文件名)

或者,如果我想选择一个文件或目录名作为首选项设置的一部分,是否需要构建自定义首选项视图?在任何地方都有这样的例子吗?(似乎人们会对我做很多事)。

[编辑] 首先在preference.xml文件中创建首选项

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

    <Preference
            android:title="Pick file"
            android:key="filePicker" 
    />
</PreferenceScreen>
现在覆盖首选项活动中的onActivityResult

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    //get the new value from Intent data
    String newValue = ....;
    SharedPreferences preferences = ......;
    SharedPreferences.Editor editor = preferences.edit();
    editor.putString("filePicker", newValue);
    editor.commit();
}

我想那应该行。我希望避免定制任何东西,但这看起来并不太糟糕。谢谢。可以用XML定义这样的意图吗?
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    //get the new value from Intent data
    String newValue = ....;
    SharedPreferences preferences = ......;
    SharedPreferences.Editor editor = preferences.edit();
    editor.putString("filePicker", newValue);
    editor.commit();
}