我想在PreferenceActivity中获取一个选择文件对话框,我该怎么做?我可以以某种方式覆盖onClick for PreferenceActivity吗? Android API 14.
这是我的PreferensActivity:
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);
}
}
标题xml是:
<?xml version="1.0" encoding="utf-8"?>
<preference-headers
xmlns:android="http://schemas.android.com/apk/res/android">
<header
android:fragment="com.bfx.rfid.FragmentSetApp"
android:icon="@android:drawable/ic_menu_call"
android:title="Application"
android:summary="Application settings">
</header>
<header
android:fragment="com.bfx.rfid.FragmentSetConnection"
android:icon="@android:drawable/ic_menu_call"
android:title="Connectivity"
android:summary="Connection settings">
</header>
</preference-headers>
PreferenceFragment类:
import android.os.Bundle;
import android.preference.PreferenceFragment;
public class FragmentSetApp extends PreferenceFragment {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.fragment_set_app);
}
}
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>
答案 0 :(得分:3)
我不认为Andorid有一个原生文件选择器,所以你必须自己实现一个,或者找一个库。
然后,您可以使用PreferenceFragment.xml中的android:onClick
属性:
<EditTextPreference
android:key="DB_URI"
android:title="Database file"
android:onClick="startFileChooser"
android:dependency="DB_default">
并将其放入PreferenceFragment:
public void startFileChooser(MenuItem i){
// Start the file chooser here
}
当然,您将如何做到这取决于您决定使用哪个文件选择器。您最终可能会得到所选文件的路径,您可以将其插入到SharedPreference中。