我正在尝试学习设置UI构建,我在android文档中看到偏好可以是一个Intent,但我现在想知道的是,Intent是否可以返回一个偏好值(例如由启动文件选择器活动)?
或者,如果我想在我的首选项设置中选择文件或目录名称,是否需要构建自定义首选项视图?在任何地方有任何方便的例子吗? (似乎人们会对我做很多事情)。
答案 0 :(得分:9)
[EDITED] 首先在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();
}