天天看点

安卓开发学习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();
                }
            }
        });
    }
}