日付と時刻コンポーネント (パート 2)


このセクションの概要:

このセクションでは、Android システムによって提供されるいくつかのネイティブの日付と時刻コンポーネントについて学習していきます。 DatePicker (日付ピッカー)、TimePicker (時間ピッカー)、CalendarView (日付ビュー)、わかりました。 実際、最初にこれらのことを差し引いてほしいと頼まれたとき、私は断りました。なぜなら、私の印象では、次のようなものだからです。このタイプのコントロールをカスタマイズしてください。でも結局のところ アウトラインは自分で書いたのですが、涙を流しながら書き上げました…DatePickerをレイアウトに書き込んで読み込むと。 プレビュー画像、よ:

かなり見栄えが良いことがわかり、ご機嫌です、笑、このセクションを始めましょう! 1.png

1.DatePicker (日付ピッカー)

利用可能な属性は次のとおりです:

android:calendarTextColor

: カレンダーリストのテキストの色
  • android:calendarViewShown: かどうかカレンダービューを表示するには
  • android:datePickerMode: コンポーネントの外観、オプションの値: スピナー、カレンダー 前者の効果は以下の通りで、デフォルトの効果は後者です
    • android:dayOfWeekBackground: 週の一番上の曜日の背景色
    • android:dayOfWeekTextAppearance: 週の一番上の曜日のテキストの色
    • android:end Year: 昨年 (コンテンツ) 2010 など
    • android :firstDayOfWeek : カレンダーリストを曜日から開始するように設定します
    • android:headerBackground: ヘッダー全体の背景色
    • android:headerDayOfMonthTextAppearance: の色ヘッダーの日付のフォント
    • android:headerMonthTextAppearance: ヘッダーの月の色のフォント
    • android:header YearTextAppearance: ヘッダーの年のフォントの色
    • android:maxDate: このカレンダー ビューに表示される最大日付 mm/dd/ yyyy 形式
    • android:maxDate: このカレンダーに表示される最小日付 mm/dd/yyyy 形式で表示
    • android:spinnersShown: スピナーを表示するかどうか
    • android:start Year: 最初の年 (内容) を設定、19940 など
    • android:yearListItemTextAppearance: リストのテキストが List に表示されます。
    • android:yearListSelectorColor: 年のリストによって選択された色

属性は上記のとおりです。次に、DatePicker イベントについて説明します。 DatePicker.OnDateChangedListener さらに。 、奇妙なはい、上記のモードでカレンダーにイベントを設定しても応答しない場合は、上記のモードであるようです 対応する値は選択した後でのみ取得できます。モードにスピナーがない場合は、次のコードを使用してイベント監視を完了できます:

実装コードは次のとおりです:


public クラス MainActivity extends AppCompatActivity implements DatePicker.OnDateChangedListener{

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DatePicker dp_test = (DatePicker) findViewById(R.id.dp_test);
Calendar calendar = Calendar.getInstance();
int year=calendar.get(Calendar.YEAR);
int monthOf Year=calendar.get(Calendar.MONTH);
int dayOfMonth=カレンダー.get(Calendar.DAY_OF_MONTH);
dp_test.init(year,monthOf Year,dayOfMonth,this);
}

@Override
public void onDateChanged(DatePicker view, int year, int monthOf Year, int dayOfMon th) {
Toast.makeText (MainActivity.this,"您选择的日期:"+year+"年"+(monthOf Year+1)+"月"+dayOfMonth+"日!",Toast.LENGTH_SHORT).show();
}
}

操作のレンダリング:

4.gif


2. TimePicker (タイムピッカー)

まず 5.0 TimePicker がどのようなものかを見てみましょう:

5.png

それでも非常に美しく見えます。私たちに提供される属性は 1 つだけです: android:timePickerMode: コンポーネントの外観、同じオプションの値は次のとおりです: スピナーとクロック (デフォルト) 前者はTimePickerの古いバージョンです~ 対応するリスニング イベントは次のとおりです: TimePicker.OnTimeChangedListener

コード例は次のとおりです:

public class MainActivity extends AppCompatActivity{

@Override
protected void onCreate(Bund le SavedInstanceState) {
super.onCreate (savedInstanceState);
setContentView(R.layout.activity_main);
TimePicker tp_test = (TimePicker) findViewById(R.id.tp_test);
tp_test.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener()
{ @Override 経由
TimePicker ビューによる, inthourOfDay, int minutes) {
Toast.makeText(MainActivity.this,"選択した時間は次のとおりです: "+hourOfDay+"hour"+minut+" minutes!",Toast.LENGTH_SHORT).show();

}) ;
}

}

レンダリングの実行: 残念ながら、このイベントをトリガーするには古いバージョンの TimePicker も必要です。

6.gif


3.CalendarView

それでは、まず外観を見てみましょう:

7.png

さて、あまり変化がないようです。次に、提供されているプロパティを簡単に見てみましょう。 :

  • android:firstDayOfWeek: 週の最初の曜日を設定します
  • android:maxDate: mm/dd/yyyy 形式で表示される最大日付
  • android: minDate: このカレンダー ビューには最小の日付が mm/dd/yyyy 形式で表示されます
  • android:weekDayTextAppearance: 曜日のテキストがカレンダー タイトルの略語で表示されます

上記を処理するものは他にもありますが、それらはすべて廃止されました... 対応する日付変更イベントは次のとおりです: CalendarView.OnDateChangeListener

サンプル コード:

public class MainActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle SavedInstanceState) {
super.onCreate(s) avedInstanceState);
setContentView (R.Layout.activity_main);
CalendarView CV_TEST = (Calendarview) FindViewByid (R.id.cv_test); {
@Override
Public Void onSelectDayChange (CalendarView View, Int Year, int month, int dayOfMonth) {
toast.maketext(mainActivity.this、 "選択した時間は:" + year + "year" + "month" + "dayofmonth +" day "、toast.length_short).show();

操作のレンダリング:

8.gif


このセクションの概要:

さて、これら 3 つのコントロールの紹介は以上です。実際の開発では、通常、これらのコントロールをカスタマイズします。 上級シリーズでは、独自のコントロールを作成していきますので、ご期待ください、ありがとうございます~