天天看點

安卓開發學習6-3:基本UI元件:日期時間類元件日期時間類元件

  • 日期時間類元件
    • 日期元件
      • 基本使用
      • 設定日期以及日期改變監聽
    • 時間選擇器元件
      • 基本使用
    • 計時器元件
      • 涉及方法
      • 基本使用

日期時間類元件

日期元件

基本使用

<DatePicker
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:id="@+id/dp"
     android:layout_weight="1"
     ></DatePicker>
           

設定日期以及日期改變監聽

package com.example.happy;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.DatePicker;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

import java.util.Calendar;

public class MainActivity extends Activity {

    int year;
    int month;
    int day;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        DatePicker dp = findViewById(R.id.dp);
//      月曆對象
        Calendar calendar = Calendar.getInstance();

        year = calendar.get(Calendar.YEAR);
        month = calendar.get(Calendar.MONTH);
        day = calendar.get(Calendar.DAY_OF_MONTH);
//      日期選中其初始化
        dp.init(year, month, day, new DatePicker.OnDateChangedListener() {
            /**
             * 
             * @param datePicker
             * @param i  年
             * @param i1  月
             * @param i2  日
             */
            @Override
            public void onDateChanged(DatePicker datePicker, int i, int i1, int i2) {
                MainActivity.this.year = i;
                MainActivity.this.month = i1;
                MainActivity.this.day = i2;
                Toast.makeText(MainActivity.this, String.format("%s年%s月%s日",i,i1+1,i2), Toast.LENGTH_SHORT).show();
            }
        });
    }
}
           

時間選擇器元件

基本使用

1、xml檔案

<TimePicker
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:id="@+id/timepicker"
   ></TimePicker>
           

2、監聽時間選擇變化

package com.example.happy;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.DatePicker;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TimePicker;
import android.widget.Toast;

import java.util.Calendar;

public class MainActivity extends Activity {
    int year;
    int month;
    int day;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TimePicker tp = findViewById(R.id.timepicker);
        tp.setIs24HourView(true);
        tp.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
            @Override
            public void onTimeChanged(TimePicker timePicker, int i, int i1) {
                String ts = String.format("%d時%d分", i, i1);
                Toast.makeText(MainActivity.this,ts, Toast.LENGTH_SHORT).show();
            }
        });
    }
}
           

計時器元件

涉及方法

安卓開發學習6-3:基本UI元件:日期時間類元件日期時間類元件

基本使用

1、xml檔案

<Chronometer
    android:id="@+id/chronometer"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="@color/teal_700"
    ></Chronometer>
           

2、監聽計時器變化

package com.example.happy;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.Chronometer;
import android.widget.CompoundButton;
import android.widget.DatePicker;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TimePicker;
import android.widget.Toast;

import java.util.Calendar;

public class MainActivity extends Activity {

    int year;
    int month;
    int day;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Chronometer ch = findViewById(R.id.chronometer);
//      全屏顯示
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN, WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
//      設定基本時間,這裡設定的是跑到這段代碼的目前系統時間
        ch.setBase(SystemClock.elapsedRealtime());
//      設定時間格式:%s是置于分鐘和秒顯示,可以添加文字,例如:已使用“%s
        ch.setFormat("%s");
        ch.start();

        ch.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
            @Override
            public void onChronometerTick(Chronometer chronometer) {
//              時間的機關是毫秒
                Long d = SystemClock.elapsedRealtime() - ch.getBase();
                if(d>=10000){
                    ch.stop();
                    Toast.makeText(MainActivity.this, "遊戲結束", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
}