从preferences文件选择意向打开 [英] file chooser intent opened from preferences

查看:150
本文介绍了从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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆