0

addPreferencesFromResource (R.xml.preferences_main);을 호출하여 환경 설정을로드하는 PreferenceFragment가 있습니다.DialPreference의 DatePicker 및 TimePicker

Preferences_main.xml 파일에는 DialogPreference를 확장하는 TimePreference라는 사용자 지정 환경 설정이 있습니다. TimePreference에는 TimePicker 만 포함됩니다 (DatePicker도 시도했습니다). TimePicker가 표시되면 이제 다른 형식이됩니다. 회전자가되는 대신 EditText보기와 위/아래 화살표가있는 버전입니다. 진짜 문제는 화살표가 흰색이고 텍스트가 흰색 인 것입니다. 모두 흰색 배경 대화 상자에 있습니다.

액티비티에 TimePicker를 추가하면 테마가 적용된 스피너 스타일입니다.

왜 이것이 DialogPreference에서만 발생하고 활동에서는 발생하지 않는지 알 수 없습니다. 그것처럼 모든 스타일을 잃는다.

내 기본 테마는 Theme.AppCompat.Light입니다. 동일한 결과를 가진 다른 두 가지를 시도했습니다.

편집 : 내의 minSdkVersion이 11이고 대상이 19

누구나 어떤 아이디어가 무엇입니까? 당신은 주제에 대한 정보를 저장하지 않는 응용 프로그램 컨텍스트를 사용하는

public class TestPreference extends DialogPreference { 

Button btn; 
TimePicker tp; 

public TestPreference(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    // TODO Auto-generated constructor stub 
} 

@Override 
protected View onCreateDialogView() { 
    tp = new TimePicker(getContext().getApplicationContext()); 
    return tp; 
} 

}

TimePicker in DialogPreference

답변

2

은/스타일 응용 프로그램에 대한 선택했다.

은 다음과 TimePicker의 초기화를 변경 시도하고 그것이 작동하는지 확인 :

tp = new TimePicker(getContext()); 

또한, 귀하의 TestPreference의 인스턴스를 생성, 예를 들어, 생성자에 활동의 참조를 전달 : YourActivity.this.

+0

나는 식식이 부숴지기 전에 그것을 시험해보고 있었고 일하는 것처럼 보였다. 몇 가지를 더 많이 알려 드리겠습니다. – johnw182

+0

또한 TestPreference가 환경 설정 xml에서 생성되므로 내 활동 참조를 전달하는 방법은 무엇입니까? – johnw182

+0

아아, 그렇다면 단순히 TimePicker를 초기화하기 위해 말한 것에 충실하십시오. – waqaslam