java - PreferenceFragment 中的文件选择器对话框

标签 java android

我想在我的 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/

相关文章:

java - 如何通过 API 访问 Hadoop 计数器值?

java - 是否可以编写一个方法来接受不同抽象的通用参数?

java - Android studio Firebase数据库查询选中值

android - VPN与android的连接

java - 无法将字符串转换为人类可读的格式

java - freemarker 模板 : split large string in n-size chunks

java - 无法使用 CDATA 找到 Suite CRM 的自定义模块

java - 在哪里放置 AdMob 横幅?

javascript - Visual Studio 多设备混合无法获取包信息错误

android - 切换到主 Activity 时启动画面正在调整大小