2010-06-21 4 views
2

Je suis en train d'écrire un fond d'écran en direct pour Android et il a un PreferenceScreen qui contient actuellement une seule préférence - un DialogPreference pour définir diverses propriétés de l'animation.Est-il possible d'afficher une DialogPreference sans afficher un écran Preference?

flux de travail utilisateur pour configurer ressemble actuellement à ceci: Paramètres ... => (affiche la liste des préférences avec un seul titre) Vitesse d'animation => MyDialogPreference

Ce que je veux est de faire le flux de travail comme celui-ci : Paramètres ... => MyDialogPreference

Ie Je cherche un moyen d'ignorer la liste des préférences avec un seul élément et de montrer cette boîte de dialogue tout de suite.

Mais il semble que PreferenceActivity demande lui-même d'avoir PreferenceScreen en tant qu'élément racine de la hiérarchie des préférences. Alors ... est-il même possible de faire ce que je veux? :)

références Code:

Code d'activité:

public class ForestLakePreferences extends PreferenceActivity 
{ 
    protected void onCreate(Bundle savedState) 
    { 
     super.onCreate(savedState); 
     getPreferenceManager().setSharedPreferencesName(
       ForestLakeWallpaper.PREFS_NAME); 
     addPreferencesFromResource(R.xml.preferences); 
    } 
} 

Préf ressource: méthode

<?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> 

Répondre

1

Il s'est avéré que cela ne peut pas être fait de cette façon.

Mais j'ai trouvé une solution: je l'ai fait mon activité non un PreferencesActivity, mais une coutume et un fait ressembler de dialogue en plaçant les éléments suivants dans AndroidManifest.xml

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

Un DialogPreference a un showDialog (état Bundle), essayez de l'appeler. Je ne suis pas sûr si vous devrez lui donner quelque chose d'autre comme les préférences ou quoi que ce soit.

Questions connexes