【问题标题】:How can I launch a DialogFragment from clicking a preference item?如何通过单击首选项启动 DialogFragment?
【发布时间】:2016-11-26 23:08:59
【问题描述】:

在我的preferences.xml 文件中我有类似的东西

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android">

    <PreferenceCategory
        android:title = "Random Title"
        android:key = "random_category">

    </PreferenceCategory>
</PreferenceScreen>

我有一个 PreferenceFragment:

public class PrefFragment extends PreferenceFragment  {

    @Override
    public void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);
    }

}

我想将一个项目添加到类别中,如果您单击它,它会调用 SomeFunc() (它会启动一个 DialogFragment 并从那里我知道如何使用我编写的帮助器保存首选项值),但我没有不知道如何只包含触发此功能的常规可点击首选项。

【问题讨论】:

    标签: android sharedpreferences android-preferences android-dialogfragment


    【解决方案1】:

    添加点击事件

        Preference button = findPreference(preferenceKey);
        button.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
            @Override
            public boolean onPreferenceClick(Preference preference) {
                // Do some stuff here
                return true;
            }
        });
    

    还值得查看 Android Studio 的默认首选项页面(新建 -> 活动 -> 设置活动) - 它非常简洁但不太简单。

    【讨论】:

    • 打我一拳...+1
    • 我尝试使用默认首选项页面,但我不知道我应该用它实际做什么。
    • 哦,我知道,这是一个有点压倒性的例子,但它展示了重要的设计和功能特性,只是需要时间来理解它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多