날짜 및 시간 구성요소(2부)


이 섹션 소개:

이 섹션에서는 Android 시스템에서 제공하는 몇 가지 기본 날짜 및 시간 구성 요소를 계속해서 학습합니다. DatePicker(날짜 선택기), TimePicker(시간 선택기), CalendarView(날짜 보기), 알겠습니다. 사실 처음에 이런 것들을 공제해 달라는 요청을 받았을 때 거절했습니다. 제 인상으로는 다음과 같았거든요.

1.png

눈물이 날 뻔했는데, 왜 그렇게 많은 사람들이 좋아하는지 이제야 이해가 되네요. 이 유형의 컨트롤을 사용자 정의하세요! 하지만 결국 아웃라인에 제가 직접 썼는데, 눈물이 나서 마무리해야 했는데요... 레이아웃에 DatePicker를 작성하고 살펴보니.. 미리보기 사진, 요:

알고 보니 꽤 괜찮아 보이고 기분도 좋아요, 하하, 이번 섹션부터 시작하겠습니다!


1.DatePicker(날짜 선택기)

사용 가능한 속성은 다음과 같습니다.

  • android:calendarTextColor: 캘린더 목록의 텍스트 색상
  • android:calendarViewShown: 여부 달력 보기를 표시하려면
  • android:datePickerMode: 구성 요소 모양, 선택 값: 스피너, 달력 전자의 효과는 다음과 같고, 기본 효과는 후자

3.png

  • android:dayOfWeekBackground: 한 주의 상위 요일의 배경색
  • android:dayOfWeekTextAppearance: 한 주의 상위 요일의 텍스트 색상
  • android:endYear: 작년(콘텐츠 ) 예: 2010
  • android :firstDayOfWeek : 달력 목록을 요일로 시작하도록 설정
  • android:headerBackground: 전체 헤더의 배경색
  • android:headerDayOfMonthTextAppearance: 의 색상 헤더 날짜 글꼴
  • android:headerMonthTextAppearance: 헤더 월 색상의 글꼴
  • android:headerYearTextAppearance: 헤더 연도 글꼴 색상
  • android:maxDate: 이 달력 보기에 표시되는 최대 날짜 mm/dd/ yyyy 형식
  • android:maxDate: 이 달력에 표시되는 최소 날짜 mm/dd/yyyy 형식 보기
  • android:spinnersShown: 스피너 표시 여부
  • android:startYear: 첫 번째 연도 설정(콘텐츠) , 예: 19940
  • android:yearListItemTextAppearance: 목록의 텍스트가 목록에 나타납니다.
  • android:yearListSelectorColor: 연도 목록에서 선택한 색상

속성은 위이므로 원하는 대로 사용할 수 있습니다. 다음으로 DatePicker 이벤트에 대해 이야기해 보겠습니다. DatePicker.OnDateChangedListener , 이상하네요 네, 위 모드에서 달력에 이벤트를 설정했는데 반응이 없으면 위 모드인 것 같습니다 모드를 선택한 후에만 해당 값을 얻을 수 있습니다. 모드에 스피너가 없으면 다음 코드를 사용하여 이벤트 모니터링을 완료할 수 있습니다.

구현 코드는 다음과 같습니다.


public 클래스 MainActivity는 AppCompatActivity를 확장하여 DatePicker.OnDateChangedListener를 구현합니다. setContentView(R.layout.activity_main);
        DatePicker dp_test = (DatePicker) findViewById(R.id.dp_test);
        캘린더 캘린더 = Calendar.getInstance();
        int year=calendar.get(Calendar.YEAR);
        int monthOfYear=calendar.get(Calendar.MONTH);
        int dayOfMonth=calendar .get(Calendar.DAY_OF_MONTH);
        dp_test.init(year,monthOfYear,dayOfMonth,this);
    }

    @Override
    public void onDateChanged(DatePicker view, int year, int MonthOfYear, int dayOfMonth) {
        Toast.makeText (MainActivity.this,"您选择的日期是:"+year+"年"+(monthOfYear+1)+"월"+dayOfMonth+"日!",Toast.LENGTH_SHORT).show();
    }
}

작업 렌더링:

4.gif


2. TimePicker(시간 선택기)

먼저 5.0 TimePicker의 모습을 살펴보겠습니다.

5.png

아직도 꽤 아름다워 보입니다. 공식을 찾았습니다. 우리에게 제공되는 속성은 단 하나입니다: android:timePickerMode: 구성 요소 모양, 동일한 선택 값은 spinner 및 clock(기본값)입니다. 전자는 TimePicker의 구버전입니다~ 해당 청취 이벤트는 다음과 같습니다. TimePicker.OnTimeChangedListener

다음은 코드 예입니다.

public class MainActivity 확장 AppCompatActivity{

@Override
protected void onCreate(Bund le saveInstanceState) {
         super.onCreate (savedInstanceState);
setContentView(R.layout.activity_main);
TimePicker tp_test = (TimePicker) findViewById(R.id.tp_test);
tp_test.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener()
                     |                                                                        TimePicker 보기를 통해 , int hourOfDay, int 분) {
             Toast.makeText(MainActivity.this,"선택한 시간은: "+hourOfDay+"시간"+분+"분!",Toast.LENGTH_SHORT).show();
            
        }) ;
     }

}

렌더링 실행: 안타깝게도 이 이벤트를 트리거하려면 이전 버전의 TimePicker도 필요합니다! ” :

6.gif


android:firstDayOfWeek

: 한 주의 첫 번째 요일을 설정합니다.

android:maxDate

: 이 달력 보기에 표시되는 최대 날짜는 mm/dd/yyyy 형식입니다. 7.png

android: minDate
: 최소 날짜는 mm/dd/yyyy 형식으로 이 달력 보기에 표시됩니다.
  • android:weekDayTextAppearance: 요일 텍스트가 달력 제목 약어로 표시됩니다.
  • 위를 처리하는 다른 방법이 있지만 모두 더 이상 사용되지 않습니다 ... 해당 날짜 변경 이벤트는 다음과 같습니다. CalendarView.OnDateChangeListener
  • 샘플 코드:
  • public class MainActivity 확장 AppCompatActivity{
  • @Override
protected void onCreate(Bundle saveInstanceState) {

          super.onCreate(savedInstanceState );           setContentView (R.layout.activity_main);            CalendarView cv_test = (CalendarView)    findViewById(R.id.cv_test);

          cv_test.setOnDateChangeListener(new CalendarView.OnDateChangeListener()                    ~ 아웃  out  out out out out out out out out out right outmballowallowallowallowallowallowallowallowallowallowallowallowcerallow outallow out out out out out out out out out out out out through out through out out out off back to

int Month, int dayOfMonth) {                   Toast.makeText(MainActivity.this,"선택한 시간은 "+ 년 + "년입니다. " + 월 + "월" + dayOfMonth + "일",Toast.LENGTH_SHORT).show( );                                                       

작업 렌더링:

8.gif


이 섹션 요약:

자, 실제 개발에서는 일반적으로 이러한 컨트롤을 사용자 정의합니다. 고급 시리즈에서는 저희가 자체적으로 컨트롤을 작성할 예정이니 지켜봐 주시기 바랍니다. 감사합니다~