2010-06-21 3 views
2

저는 현재 Android 용 라이브 배경 화면을 작성하고 있으며 현재 기본 설정이 하나만있는 PreferenceScreen (DialogPreference - 애니메이션의 다양한 속성 설정)이 있습니다.PreferenceScreen을 표시하지 않고 DialogPreference를 표시 할 수 있습니까?

사용자 워크 플로우는 현재 다음과 같다 구성합니다 이 ... =이> 애니메이션 속도 (하나의 제목으로 환경 설정 목록을 보여줍니다) 설정 => MyDialogPreference

내가 원하는 것은이 같은 흐름을 확인하는 것입니다 : 설정 ... => MyDialogPreference

한 항목 만있는 환경 설정 목록을 건너 뛰고 바로 대화 상자를 표시하는 방법을 찾고 있습니다.

그러나 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

이렇게 밝혀진 것은 그렇게 할 수 없습니다.

하지만 난 해결 방법을 발견했습니다 : 나는

<activity android:theme="@android:style/Theme.Dialog" .... /> 
AndroidManifest.xml에

에 다음 내 활동이 아닌 PreferencesActivity하지만, 사용자 정의를 제작하고 배치하여 대화 상자처럼 보이게했다
0

DialogPreference는 ShowDialog를 (번들 상태) 메소드를 가지고는, 그것을 호출하려고합니다. 나는 당신이 환경 설정이나 무엇이든 다른 것을 주어야하는지 확실하지 않습니다.

관련 문제