我想在我的 PreferenceActivity 中获得一个选择文件对话框,我该如何实现?我可以以某种方式覆盖 PreferenceActivity 的 onClick 吗?安卓 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);
}
}
header 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>
最佳答案
我不认为 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 中。
关于java - PreferenceFragment 中的文件选择器对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21576971/