从preferences文件选择意向打开 [英] file chooser intent opened from preferences
问题描述
我想了解设置UI的建设,我在Android文档,一个preference可以是故意看,但如果这一意图可以返回preference值(我现在不知道是如通过启动一个文件选择活动选择了一个文件名)?
I'm trying to learn about Settings UI building, and I see in the android docs that a preference can be an Intent, but what I wonder now is if that Intent can return a preference value (such as a filename picked by starting a file chooser activity)?
或者,如果我要选择一个文件或目录名作为我的preference设置的一部分,我需要建立一个自定义preference看法?是否有此任何地方的任何方便的例子吗? (好像什么人会做了很多对我来说)。
Or, if I want to pick a file or directory name as part of my preference settings, do I need to build a custom preference view? Are there any handy examples of this anywhere? (seems like something folks would do a lot to me).
推荐答案
首先,在你的preference.xml文件中创建一个preference
First create a preference in your preference.xml file
<?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>
现在在preference活动做以下
Now in the preference activity do the following
@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在preference活动
Now override onActivityResult in the preference activity
@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();
}
这篇关于从preferences文件选择意向打开的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!