2012-11-08 2 views
-2

나는 DatePickerDialog가있는 앱을 가지고 있습니다. 다른 장치에서 동일한 코드를 실행할 때 다른 앤드류를 실행하면 다른 대화 상자가 나타납니다. 나는 다른 버전의 안드로이드에서 동일한 위젯이 완전히 다르게 보일 수 있지만 왜 wigets 기능이 동일한 소스 코드와 다른지 이해합니다.다른 Android 버전에서 위젯이 다르게 표시되는 이유는 무엇입니까?

다음은 Android 위젯 2.3.3이고 두 번째 위젯은 Android 4.0.4입니다. 나는 그것들이 다르게 보인다고 알고 있지만 위젯의 맨 위에 2.3.3 버전과 마찬가지로 4.0.4에 날짜가 반영되도록하고 싶습니다. 4.0.4에 "Thursday, 08/Nov/2012 Thursday"가 표시되지 않는 이유는 무엇입니까?

2.3.3

4.0.4

답변

1

은 왜 "목요일/11월/2012 08"4.0.4에 표시되지 않는 이유는 무엇입니까?

해당 결정을 내린 사람 만 대답 할 수 있습니다. 내가 그걸 찔러야한다면 어떻게 든 더 예뻤다고 생각할 것입니다.

물론 원하는 방식으로 원하는 모든 정보를 표시하는 자신 만의 날짜 선택 대화 상자를 자유롭게 만들 수 있습니다. 모든 API 버전에서 응용 프로그램을 100 % 일관성있게 유지하려는 경우에 가장 적합한 방법 일 것입니다.

편집 : 당신은 당신이 원하는 효과를 얻기 위해 onDateChanged()을 DatePickerDialog의 오버라이드 (override) 할 수처럼

Here is the source code for DatePickerDialog

것 같습니다. 지금 샘플 코드 묶음으로 작업하고 있습니다. 다시

편집 : 여기

확인은 내가 액세스 할 수있는 4.0.3 장치에서 제대로 작동하고있는 조각이다.

df = DateFormat.getDateInstance(DateFormat.FULL); 
    mCal = Calendar.getInstance(); 
    // Create a date picker dialog 
    DatePickerDialog datePickerDialog = new DatePickerDialog(this,datePickerDialogListener, year, month, day){ 
     @Override 
     public void onDateChanged(DatePicker view, int year,int month, int day){ 
      mCal.set(Calendar.YEAR, year); 
      mCal.set(Calendar.MONTH, month); 
      mCal.set(Calendar.DAY_OF_MONTH, day); 
      setTitle(df.format(mCal.getTime())); 
     } 
    }; 

대화 상자가 표시되기 바로 전에 코드를 설정해야합니다.

+0

감사합니다. 사용자 정의 대화 상자에 대한 포인터가 있습니까? – turtleboy

+0

DatePickerDialog에는 문자열을 설정하는 데 사용할 수있는'setTitle()'메서드가 있습니다. 당신이해야 할 일은 어떻게 행동해야하는지에 따라 약간 다릅니다. 사용자가 버튼을 사용하여 날짜를 변경하면 제목의 날짜를 변경해야합니까? – FoamyGuy

+0

예. 요일을 변경하고 표시해야합니다. 로타를 찾는 간병인을위한 것입니다.그 (것)들을 위해 다만 + 단추를 명중하고 날짜가 마지막 tuesday 인 무슨을 그들의 머리에서 운동하면 좋을. – turtleboy

0

원래 (2.3 이하는 [honeycomb?]) 제목이 자동으로 현재 날짜로 업데이트되었습니다. 그들은 그것이 항상 바람직한 것은 아닐 수도 있다는 것을 깨달았습니다 (예를 들어, 2.3에서 "일반 텍스트"제목을 설정하는 것이 고통 스럽습니다). 그래서 일반 텍스트로 변경되었습니다. 코드의 두 버전 (2.34.0)을 모두 확인할 수 있습니다. 4.0보다 2.3처럼 보이게하는 것이 더 쉽다고 생각하지만, 사용자 정의해야 할 것입니다.

관련 문제