Java PreferenceFragment中的文件选择器对话框

Java PreferenceFragment中的文件选择器对话框,java,android,Java,Android,我想在我的首选项活动中获得一个“拾取文件”对话框,我如何获得该对话框?我能否以某种方式覆盖首选项活动的onClick?安卓API 14 以下是我的首选活动: import android.preference.PreferenceActivity; import java.util.List; public class SettingsActivity extends PreferenceActivity { @Override public boolean onIsMulti

我想在我的首选项活动中获得一个“拾取文件”对话框,我如何获得该对话框?我能否以某种方式覆盖首选项活动的onClick?安卓API 14

以下是我的首选活动:

    import android.preference.PreferenceActivity;
    import java.util.List;
public class SettingsActivity extends PreferenceActivity {

@Override
public boolean onIsMultiPane() {
    return true;
}

public void onBuildHeaders(List<Header> target) {
        loadHeadersFromResource(R.xml.pref_head, target);
    }
}
PreferenceFragment xml是:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<Preference
    android:key="work_directory"
    android:title="Folder to work with">
</Preference>
<PreferenceCategory
    android:title="Work with a database file">
    <CheckBoxPreference
        android:key="DB_default"
        android:summary="Choose a default database file or pick one"
        android:title="Choose a database file"
        android:defaultValue="true"/>
    <EditTextPreference
        android:key="DB_URI"
        android:title="Database file"
        android:dependency="DB_default">
    </EditTextPreference>
</PreferenceCategory>
</PreferenceScreen>

我认为我没有本机文件选择器,所以您必须自己实现一个,或者找到一个库

然后可以使用PreferenceFragment.xml中的
android:onClick
属性:

<EditTextPreference
    android:key="DB_URI"
    android:title="Database file"
    android:onClick="startFileChooser"
    android:dependency="DB_default"> 
当然,您将如何实现这一点取决于您决定使用哪个文件选择器。您可能会得到所选文件的路径,并将其插入到SharedReference中

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<Preference
    android:key="work_directory"
    android:title="Folder to work with">
</Preference>
<PreferenceCategory
    android:title="Work with a database file">
    <CheckBoxPreference
        android:key="DB_default"
        android:summary="Choose a default database file or pick one"
        android:title="Choose a database file"
        android:defaultValue="true"/>
    <EditTextPreference
        android:key="DB_URI"
        android:title="Database file"
        android:dependency="DB_default">
    </EditTextPreference>
</PreferenceCategory>
</PreferenceScreen>
<EditTextPreference
    android:key="DB_URI"
    android:title="Database file"
    android:onClick="startFileChooser"
    android:dependency="DB_default"> 
public void startFileChooser(MenuItem i){
     // Start the file chooser here
}