- 日期时间类组件
-
- 日期组件
-
- 基本使用
- 设置日期以及日期改变监听
- 时间选择器组件
-
- 基本使用
- 计时器组件
-
- 涉及方法
- 基本使用
日期时间类组件
日期组件
基本使用
<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();
}
});
}
}
计时器组件
涉及方法
基本使用
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();
}
}
});
}
}