Android日历/时间/计时器简单控件的使用
原创谈起Android与我们想象的相比,大多数控件textview,imageview,edittext,button,checkbox比如比较常用的控件,对于一些要显示的特殊功能不足以很好地表达,今天就介绍几个相对更好的控件,让我们小白进来Android更好的表演!
今天,我将简要介绍三个,即1:datepicker日历 2:timepicker时钟 3:chronometer计时器
日历简单实现对应的点击日期toast时钟在一年中的某一天转动时间。toast在相应的时间,计时器已计时一分钟,一分钟后它将立即停止,数字将不再改变!
下面我将直接发布code(此外,为了便于浏览,我将这三个都写在一个类文件中xml这里也没有显示布局),因为毕竟,控件相对容易。我还在代码段中对一些需要解释的事情做了相关评论。如果你有任何问题,可以在评论区留言或私下信任我。如果内容有任何不足或错误,请纠正我!
public class MainActivity extends AppCompatActivity {
private DatePicker datePicker;
private TimePicker timePicker;
private Chronometer chronometer;
private int year,mounth,day;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
datePicker=findViewById(R.id.datapicker);
timePicker=findViewById(R.id.timepicker);
chronometer=findViewById(R.id.ch);
Calendar calendar=Calendar.getInstance();
year=calendar.get(Calendar.YEAR);
mounth=calendar.get(Calendar.MONTH);
day=calendar.get(calendar.DAY_OF_MONTH);
datePicker.init(year, mounth, day, new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
MainActivity.this.year=year;
MainActivity.this.mounth=monthOfYear;
MainActivity.this.day=dayOfMonth;
String str1=year+"年"+(mounth+1)+"月"+day+"日";
Toast.makeText(MainActivity.this,str1,Toast.LENGTH_SHORT).show();
}
});
timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
timePicker.setIs24HourView(true);//24小时制,不添加这行代码,默认时间为12几个小时后,就有早晨了/下午
String str2 =hourOfDay+"时"+minute+"分";
Toast.makeText(MainActivity.this,str2,Toast.LENGTH_SHORT).show();
}
});
/* setBase()>>>>>设置计时器的启动时间
setFormat()>>>>>格式显示时间
start()>>>>>指定开始时间
stop()>>>>>指定停止时间
setOnChronometerTickListener()计时器侦听事件>>>>>*/
chronometer.setBase(SystemClock.elapsedRealtime());
chronometer.setFormat("%s");
chronometer.start();
chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
if (SystemClock.elapsedRealtime()-chronometer.getBase()>=60000){//实际时间减去开始时间为60000毫秒即60秒时
chronometer.stop();
}
}
});
}
}
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除