赞
踩
实现日期和时间选择的对话框,具体效果可看下图(以日期为例)
<?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" android:orientation="vertical" android:gravity="center"> <DatePicker android:id="@+id/datePicker" android:layout_width="match_parent" android:layout_height="wrap_content" android:calendarViewShown="false" android:datePickerMode="spinner" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center" android:padding="10dp"> <Button android:id="@+id/btn_date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="选择日期"/> <Button android:id="@+id/btn_ok" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="确定"/> </LinearLayout> <TextView android:id="@+id/tv_date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="尚未选择" android:textSize="20sp"/> </LinearLayout>
package com.example.learn; import androidx.appcompat.app.AppCompatActivity; import android.app.DatePickerDialog; import android.os.Bundle; import android.view.View; import android.widget.DatePicker; import android.widget.TextView; import java.util.Calendar; public class DatePickerActivity extends AppCompatActivity implements View.OnClickListener, DatePickerDialog.OnDateSetListener { private TextView tv; private DatePicker dp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_date_picker); findViewById(R.id.btn_ok).setOnClickListener(this); findViewById(R.id.btn_date).setOnClickListener(this); tv=findViewById(R.id.tv_date); dp = findViewById(R.id.datePicker); } @Override public void onClick(View view) { switch(view.getId()){ case R.id.btn_ok: String desc=String.format("%d年%d月%d日",dp.getYear(),dp.getMonth()+1,dp.getDayOfMonth()); tv.setText(desc); break; case R.id.btn_date: //获取当前时间 Calendar now = Calendar.getInstance(); DatePickerDialog dpd = new DatePickerDialog(this,this,now.get(Calendar.YEAR),now.get(Calendar.MONTH),now.get(Calendar.DAY_OF_MONTH)); //显示 dpd.show(); break; } } @Override public void onDateSet(DatePicker datePicker, int i, int i1, int i2) { String desc=String.format("%d年%d月%d日",i,i1+1,i2); tv.setText(desc); } }
<?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" android:orientation="vertical" android:gravity="center"> <TimePicker android:id="@+id/timePicker" android:layout_width="match_parent" android:layout_height="wrap_content" android:timePickerMode="spinner" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center" android:padding="10dp"> <Button android:id="@+id/btn_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="选择时间"/> <Button android:id="@+id/btn_ok" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="确定"/> </LinearLayout> <TextView android:id="@+id/tv_date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="尚未选择" android:textSize="20sp"/> </LinearLayout>
package com.example.learn; import androidx.appcompat.app.AppCompatActivity; import android.app.TimePickerDialog; import android.os.Bundle; import android.view.View; import android.widget.DatePicker; import android.widget.TextView; import android.widget.TimePicker; import java.util.Calendar; public class TimePickerActivity extends AppCompatActivity implements View.OnClickListener, TimePickerDialog.OnTimeSetListener { private TextView tv; private TimePicker tp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_time_picker); findViewById(R.id.btn_ok).setOnClickListener(this); findViewById(R.id.btn_time).setOnClickListener(this); tv=findViewById(R.id.tv_date); tp = findViewById(R.id.timePicker); } @Override public void onClick(View view) { switch(view.getId()){ case R.id.btn_ok: String desc=String.format("%d时%d分",tp.getCurrentHour(),tp.getCurrentMinute()); tv.setText(desc); break; case R.id.btn_time: //获取日历实例,包含日期和时分 Calendar instance = Calendar.getInstance(); //构建时间对话框 // TimePickerDialog tpd = new TimePickerDialog(this,this, // instance.get(Calendar.HOUR_OF_DAY), // instance.get(Calendar.MINUTE), // true); //添加样式 TimePickerDialog tpd = new TimePickerDialog(this, android.R.style.Theme_Holo_Dialog,this, instance.get(Calendar.HOUR_OF_DAY), instance.get(Calendar.MINUTE), true); tpd.show(); break; } } @Override public void onTimeSet(TimePicker timePicker, int i, int i1) { String desc=String.format("%d时%d分",i,i1); tv.setText(desc); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。