7

我正在尝试了解设置 UI 构建,我在 android 文档中看到首选项可以是 Intent,但我现在想知道的是该 Intent 是否可以返回首选项值(例如通过启动文件选择的文件名选择器活动)?

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

4

1 回答 1

17

[编辑] 首先在您的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>

现在在偏好活动中执行以下操作

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.preferences);
    Preference filePicker = (Preference) findPreference("filePicker");
    filePicker.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
        @Override
        public boolean onPreferenceClick(Preference preference) {
            Intent intent = new Intent(......); //Intent to start openIntents File Manager
            startActivityForResult(intent, requestMode);
            return true;
        }
    });
}

现在覆盖偏好活动中的 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();
}
于 2012-09-09T16:57:10.313 回答