是否可以在不显示PreferenceScreen的情况下显示DialogPreference?
问题描述:
我目前正在为Android编写动态壁纸,它有一个PreferenceScreen,它当前只包含一个首选项 - 一个DialogPreference来设置动画的各种属性。是否可以在不显示PreferenceScreen的情况下显示DialogPreference?
用户的工作流程进行配置,目前看起来是这样的: 设置... =>(显示只有一个标题喜好列表)动画速度=> MyDialogPreference
我想就是让这样的工作流程: 设置... => MyDialogPreference
Ie我正在寻找一种方法来跳过只显示一个项目的首选项列表,并立即显示该对话框。
但PreferenceActivity似乎要求自己将PreferenceScreen作为偏好层次结构的根元素。所以...甚至有可能做我想做的事情? :)
代码引用:
活动代码:
public class ForestLakePreferences extends PreferenceActivity
{
protected void onCreate(Bundle savedState)
{
super.onCreate(savedState);
getPreferenceManager().setSharedPreferencesName(
ForestLakeWallpaper.PREFS_NAME);
addPreferencesFromResource(R.xml.preferences);
}
}
偏好设置资源:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:key="lake_preferences">
<DurationEditDialog
android:title="@string/prefs_duration_title"
android:dialogTitle="@string/configure_durations_dlg_title"
android:dialogLayout="@xml/set_durations_layout" />
</PreferenceScreen>
答
事实证明,这不能以这种方式完成。
,但我已经找到了解决办法:我做了我的活动不是PreferencesActivity,而是一个自定义,并使它看起来像对话框放置在AndroidManifest.xml
<activity android:theme="@android:style/Theme.Dialog" .... />
以下
答
一个DialogPreference拥有的ShowDialog(包状态)的方法,尝试调用它。我不确定你是否必须给它任何其他的喜好或任何东西。