编程语言
首页 > 编程语言> > 如何以编程方式打开或模拟用XML创建的Android Preference上的点击?

如何以编程方式打开或模拟用XML创建的Android Preference上的点击?

作者:互联网

我有一个Android应用程序,其中的首选项以XML格式声明,并加载了addPreferencesFromResource.用户可以打开首选项,单击每个项目并编辑它们,所有工作.

我有一个偏好是:

        <ListPreference android:key="abc"
            android:title="@string/abc"
            android:summary="@string/cde"
            android:persistent="true"/>

如何自动向用户显示首选项对话框(用户无需转到首选项屏幕并单击它?).

我试过((android.preference.DialogPreference)prefMgr.findPreference(“abc”)).showDialog(null),但是说它是受保护的方法……?从我的主要活动(这是一个PreferenceActivity)调用它,这就是它显然无法工作的原因.但是怎么回事?

编辑

我刚刚找到两个线程(12),其想法是使用findViewById来访问首选项,但没有成功.它总是返回null(对我来说也是如此).

看起来似乎没有可能从代码中做到这一点.

解决方法:

您可以使用扩展的ListPreference来创建对话框,然后包含您自己的公共方法,该方法调用ListPreference的受保护的showDialog方法.就像是:

public void show()
{
    showDialog(null);
}

这样,当有多个人在评论中指出你的答案时,你就不会遇到getOrder()无法正常工作的问题.

这可以使用具有受保护的showDialog方法的任何首选项类型来完成.

标签:android,android-preferences
来源: https://codeday.me/bug/20190916/1807691.html