如何以编程方式打开或模拟用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)调用它,这就是它显然无法工作的原因.但是怎么回事?
编辑
我刚刚找到两个线程(1和2),其想法是使用findViewById来访问首选项,但没有成功.它总是返回null(对我来说也是如此).
看起来似乎没有可能从代码中做到这一点.
解决方法:
您可以使用扩展的ListPreference来创建对话框,然后包含您自己的公共方法,该方法调用ListPreference的受保护的showDialog方法.就像是:
public void show()
{
showDialog(null);
}
这样,当有多个人在评论中指出你的答案时,你就不会遇到getOrder()无法正常工作的问题.
这可以使用具有受保护的showDialog方法的任何首选项类型来完成.
标签:android,android-preferences 来源: https://codeday.me/bug/20190916/1807691.html