2010-06-21 158 views
2

我目前正在爲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> 

回答

1

事實證明,這不能以這種方式完成。

,但我已經找到了解決辦法:我做了我的活動不是PreferencesActivity,而是一個自定義,並使它看起來像對話框放置在AndroidManifest.xml

<activity android:theme="@android:style/Theme.Dialog" .... /> 
以下
0

一個DialogPreference擁有的ShowDialog(包狀態)的方法,嘗試調用它。我不確定你是否必須給它任何其他的喜好或任何東西。

相關問題