我正在尝试了解设置 UI 构建,我在 android 文档中看到首选项可以是 Intent,但我现在想知道的是该 Intent 是否可以返回首选项值(例如通过启动文件选择的文件名选择器活动)?
或者,如果我想选择一个文件或目录名称作为我的首选项设置的一部分,我是否需要构建一个自定义首选项视图?在任何地方都有任何方便的例子吗?(似乎人们会对我做很多事情)。
我正在尝试了解设置 UI 构建,我在 android 文档中看到首选项可以是 Intent,但我现在想知道的是该 Intent 是否可以返回首选项值(例如通过启动文件选择的文件名选择器活动)?
或者,如果我想选择一个文件或目录名称作为我的首选项设置的一部分,我是否需要构建一个自定义首选项视图?在任何地方都有任何方便的例子吗?(似乎人们会对我做很多事情)。
[编辑] 首先在您的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();
}