Android 选择日期时间对话框(可选择开始结束时间,已解决弹出键盘问题)

秒速五厘米 2022-07-24 10:08 545阅读 0赞

直接上代码:
MainActivity:

  1. package wkk.demo6;
  2. import android.app.AlertDialog;
  3. import android.app.DatePickerDialog;
  4. import android.app.TimePickerDialog;
  5. import android.content.DialogInterface;
  6. import android.os.Bundle;
  7. import android.support.v7.app.AppCompatActivity;
  8. import android.util.Log;
  9. import android.view.LayoutInflater;
  10. import android.view.View;
  11. import android.view.WindowManager;
  12. import android.widget.Button;
  13. import android.widget.DatePicker;
  14. import android.widget.TimePicker;
  15. import java.util.Calendar;
  16. public class MainActivity extends AppCompatActivity implements View.OnClickListener {
  17. private Button showdailogTwo;
  18. private Button showdailog;
  19. private Button time;
  20. //选择日期Dialog
  21. private DatePickerDialog datePickerDialog;
  22. //选择时间Dialog
  23. private TimePickerDialog timePickerDialog;
  24. private Calendar calendar;
  25. @Override
  26. protected void onCreate(Bundle savedInstanceState) {
  27. super.onCreate(savedInstanceState);
  28. setContentView(R.layout.activity_main);
  29. showdailogTwo = (Button) findViewById(R.id.showdailogTwo);
  30. showdailog = (Button) findViewById(R.id.showdailog);
  31. time = (Button) findViewById(R.id.time);
  32. time.setOnClickListener(this);
  33. showdailogTwo.setOnClickListener(this);
  34. showdailog.setOnClickListener(this);
  35. calendar = Calendar.getInstance();
  36. }
  37. @Override
  38. public void onClick(View v) {
  39. switch (v.getId()) {
  40. case R.id.showdailog:
  41. showDailog();
  42. break;
  43. case R.id.showdailogTwo:
  44. showDialogTwo();
  45. break;
  46. case R.id.time:
  47. showTime();
  48. break;
  49. }
  50. }
  51. private void showDailog() {
  52. datePickerDialog = new DatePickerDialog(
  53. this, new DatePickerDialog.OnDateSetListener() {
  54. @Override
  55. public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
  56. //monthOfYear 得到的月份会减1所以我们要加1
  57. String time = String.valueOf(year) + " " + String.valueOf(monthOfYear + 1) + " " + Integer.toString(dayOfMonth);
  58. Log.d("测试", time);
  59. }
  60. },
  61. calendar.get(Calendar.YEAR),
  62. calendar.get(Calendar.MONTH),
  63. calendar.get(Calendar.DAY_OF_MONTH));
  64. datePickerDialog.show();
  65. //自动弹出键盘问题解决
  66. datePickerDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
  67. }
  68. private void showDialogTwo() {
  69. View view = LayoutInflater.from(this).inflate(R.layout.dialog_date, null);
  70. final DatePicker startTime = (DatePicker) view.findViewById(R.id.st);
  71. final DatePicker endTime = (DatePicker) view.findViewById(R.id.et);
  72. startTime.updateDate(startTime.getYear(), startTime.getMonth(), 01);
  73. AlertDialog.Builder builder = new AlertDialog.Builder(this);
  74. builder.setTitle("选择时间");
  75. builder.setView(view);
  76. builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
  77. @Override
  78. public void onClick(DialogInterface dialog, int which) {
  79. int month = startTime.getMonth() + 1;
  80. String st = "" + startTime.getYear() + month + startTime.getDayOfMonth();
  81. int month1 = endTime.getMonth() + 1;
  82. String et = "" + endTime.getYear() + month1 + endTime.getDayOfMonth();
  83. }
  84. });
  85. builder.setNegativeButton("取消", null);
  86. AlertDialog dialog = builder.create();
  87. dialog.show();
  88. //自动弹出键盘问题解决
  89. dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
  90. }
  91. private void showTime() {
  92. timePickerDialog = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
  93. @Override
  94. public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
  95. Log.d("测试", Integer.toString(hourOfDay));
  96. Log.d("测试", Integer.toString(minute));
  97. }
  98. }, calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), true);
  99. timePickerDialog.show();
  100. timePickerDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
  101. }
  102. }

activity_main.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:tools="http://schemas.android.com/tools"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent"
  6. android:orientation="vertical"
  7. android:paddingBottom="@dimen/activity_vertical_margin"
  8. android:paddingLeft="@dimen/activity_horizontal_margin"
  9. android:paddingRight="@dimen/activity_horizontal_margin"
  10. android:paddingTop="@dimen/activity_vertical_margin"
  11. tools:context="wkk.demo6.MainActivity">
  12. <Button
  13. android:text="日期选择"
  14. android:id="@+id/showdailog"
  15. android:layout_width="wrap_content"
  16. android:layout_height="wrap_content" />
  17. <Button
  18. android:id="@+id/showdailogTwo"
  19. android:layout_width="wrap_content"
  20. android:layout_height="wrap_content"
  21. android:text="日期选择-双" />
  22. <Button
  23. android:id="@+id/time"
  24. android:layout_width="wrap_content"
  25. android:layout_height="wrap_content"
  26. android:text="时间选择" />
  27. </LinearLayout>

dialog_date.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:gravity="center_horizontal"
  6. android:orientation="vertical">
  7. <TextView
  8. android:layout_width="wrap_content"
  9. android:layout_height="wrap_content"
  10. android:layout_marginLeft="10dp"
  11. android:layout_marginTop="15dp"
  12. android:text="开始时间" />
  13. <DatePicker
  14. android:id="@+id/st"
  15. android:layout_width="wrap_content"
  16. android:layout_height="190dp"
  17. android:calendarViewShown="false"></DatePicker>
  18. <TextView
  19. android:layout_width="wrap_content"
  20. android:layout_height="wrap_content"
  21. android:layout_marginLeft="10dp"
  22. android:text="结束时间" />
  23. <DatePicker
  24. android:id="@+id/et"
  25. android:layout_width="wrap_content"
  26. android:layout_height="190dp"
  27. android:calendarViewShown="false"></DatePicker>
  28. </LinearLayout>

效果如下:

20160519184159171

20160519184230039

20160519184257961

源码下载:
http://download.csdn.net/detail/w18756901575/9525412

发表评论

表情:
评论列表 (有 0 条评论,545人围观)

还没有评论,来说两句吧...

相关阅读