3

나는이 포럼을 둘러 보았지만 정확히 필요한 것을 얻지 못했습니다. Preference에서 Custom DialogPreference가 필요하지만 DialogPreference는 내가 싫어하는 blue-strip 헤더를 가져서는 안된다. 그리고 이미 사용자 정의 액티비티 header.so로 사용할 수있는 다른 액티비티에 대한 하나의 액티비티 헤더 템플릿 xml 파일을 준비했다. 이 dialogPrerence에. 게다가 나는 사용자 정의 환경 설정 파일의 이름을 원하지만 여기서 문제는 두 개의 기본 설정 파일 이름, 기본 설정에 대해 하나 DialogPreference기본 설정 내에서 대화 상자 기본 설정을 지정하는 방법

에 대한 또 다른를 생성하지만 나는 그렇게했습니다 'Using EditTextPreference with 2 user input fields

<com.yourdomain.YourDialogPreference 
     android:title="Title" 
     android:summary="Summary" 
     android:key="dialog_preference"/> 

이 여기 같은 것을 발견 이걸로 멀리. DialogPreference 잘 열리지 만,이 사용자 정의 DialogPreference에 헤더 템플릿을 붙일 수있는 방법은 무엇입니까?

답변

4

나는 내 자신을 알아 냈습니다. 여기 있습니다.

1은 DialogPreference의 XML

<include layout="@layout/activity_header_template" /> 

의 헤더 템플릿에 대한 다음 줄을 포함 그냥 일반 사용자 정의 대화 템플릿과 같은 사용자 정의 대화 레이아웃을 준비합니다. 진짜 필요 내가

이것은

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 

    <PreferenceCategory android:title="@string/preference_header_encryption"> 

     <CheckBoxPreference 
      android:key="prefkey_use_passcode" 
      android:title="@string/preference_name_set_passcode" 
      android:summary="@string/preference_summary_set_passcode" /> 

     <!-- This is how you need to attach CustomDialogPrefernce, by using the class name --> 
     <!-- Please ignore title here. Title will come from DialogPreference Constructor --> 
     <com.nerds.notes.SettPassword 
      android:key="prefkey_set_passcode" 
      android:summary="@string/preference_app_protection" 
      android:dialogMessage="@string/action_delete" 
      android:positiveButtonText="@string/passcode_ok_button_text" 
      android:negativeButtonText="@string/passcode_cancel_button_text" 
      android:dependency="prefkey_use_passcode" /> 

     <CheckBoxPreference 
      android:key="prefkey_app_protection" 
      android:title="@string/preference_app_protection" 
      android:summary="@string/preference_summary_app_protection" 
      android:dependency="prefkey_use_passcode" /> 

    </PreferenceCategory> 

</PreferenceScreen> 

다음 줄은 내 ListPreference의 XML 코드 (단지 암호를 확인하기 위해) 암호 (1) 및 암호 2. 두 개의 입력을 원하는, 내가 DialogPreference을 사용자 정의 할 수있다 매우 중요의 DialogPreference 생성자 라인에 따라

public SettPassword(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    setPersistent(false); 
    setTitle(R.string.preference_name_set_passcode); // This will override ListPreference Title 
    setDialogLayoutResource(R.layout.passcode_set_dialog_template); 
} 

사용자 정의 환경 설정 파일의 이름을 위해 ListPreference에서 OnCreate 방법으로 코딩해야

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    PreferenceManager manager = getPreferenceManager(); 
    manager.setSharedPreferencesName("Your Preference File Name"); 
    manager.setSharedPreferencesMode(MODE_PRIVATE); 

    addPreferencesFromResource(R.xml.settings); // ListPreference XML file from XML Folder 
} 
+0

여기에 사용 된 일부 메소드는 감가 상각되었습니다. – Kirk

관련 문제