日期类组件
- 日期选择器DatePicker
- 时间选择器TimePicker
- 计时选择器Chornometer
日期选择器
package top.vanblog.andrioddemo0513_date;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.DatePicker;
import android.widget.Toast;
import java.util.Calendar;
public class MainActivity extends AppCompatActivity {
int year,month,day;
DatePicker datePicker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
datePicker=findViewById(R.id.datePicker);
Calendar calendar=Calendar.getInstance();
year=calendar.get(calendar.YEAR);
month=calendar.get(calendar.MONTH);
day=calendar.get(calendar.DAY_OF_MONTH);
//初始化日期选择器,并在初始化的时候指定监听
datePicker.init(year, month, day, new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
MainActivity.this.year=year;
MainActivity.this.month=monthOfYear;
MainActivity.this.day=dayOfMonth;
show(year,month,day);
}
});
}
private void show(int year,int monthYear,int dayMonth){
monthYear=monthYear+1; //获得的月是0-11 所以需要+1
String str=year+"年"+monthYear+"月"+dayMonth+"日";
//获取选择器设置的日期
Toast.makeText(MainActivity.this,str,Toast.LENGTH_LONG).show();
}
}
![图片(http://qiniu.vanserver.top/1557711912(1).jpg)]
时间选择器
- 设计界面
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" android:orientation="vertical">
<TimePicker
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/timePicker"
></TimePicker>
</LinearLayout>
- 逻辑界面
package top.vanblog.andrioddemo0513_time;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TimePicker;
import android.widget.Toast;
import java.util.Calendar;
public class MainActivity extends AppCompatActivity {
TimePicker timePicker;
int hour,minute;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
timePicker=findViewById(R.id.timePicker);
timePicker.setIs24HourView(true);
Calendar calendar=Calendar.getInstance();
hour=calendar.get(Calendar.HOUR_OF_DAY);
minute=calendar.get(Calendar.MINUTE);
timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
MainActivity.this.hour=hourOfDay;
MainActivity.this.minute=minute;
show(hourOfDay,minute);
}
});
}
private void show(int hourOfDay,int minute){
String str=hourOfDay+"时"+minute+"分";
Toast.makeText(MainActivity.this,str,Toast.LENGTH_LONG).show();
}
}
[外链图片转存失败(img-PknAyocQ-1562049576874)(http://qiniu.vanserver.top/2019-05-13_101733.png)]
计时器
使用计时器组件的时候,需要5个方法
- setBase(); 用于设置计时器的起始时间
- setFormat();用于设置显示时间的格式
- start();用于指定开始计时
- stop();用于指定停止计时
- setOnchronometerTickListerner();用于为计时器绑定事件监听器
设计界面
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Chronometer
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/ch"
android:format="%s"
/>
</LinearLayout>
逻辑代码
package top.vanblog.andrioddemo0513_chronometer;
import android.os.SystemClock;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.WindowManager;
import android.widget.Chronometer;
public class MainActivity extends AppCompatActivity {
Chronometer ch;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
ch=findViewById(R.id.ch);
ch.setBase(SystemClock.elapsedRealtime());
ch.setFormat("%s");
ch.start();
ch.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
//判断时间是否达到60S
if (SystemClock.elapsedRealtime()-ch.getBase()>=60000){
ch.stop();;
}
}
});
}
}
[外链图片转存失败(img-QHCsLRBt-1562049576875)(http://qiniu.vanserver.top/2019-05-13_123556.png)]