当前位置: 首页 > 知识库问答 >
问题:

带有edittext中预选值的DatePicker对话框

仲孙诚
2023-03-14
<EditText
            android:id="@+id/dob"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:inputType="date"
            android:hint="Date Of Birth"
            android:textSize="12sp"
         android:drawableRight="@drawable/ic_perm_contact_calendar_black_24dp"
            android:drawableTint="@android:color/holo_orange_light"/>

Java代码:

dob.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final Calendar myCalendar = Calendar.getInstance();
                DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                        // TODO Auto-generated method stub
                        myCalendar.set(Calendar.YEAR, year);
                        myCalendar.set(Calendar.MONTH, monthOfYear);
                        myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
                        String myFormat = "dd-MMM-yyyy"; // your format
                        SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.getDefault());

                        dob.setText(sdf.format(myCalendar.getTime()));
                    }

                };
                new DatePickerDialog(PersonalDetailsFormActivity.this, date, myCalendar.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH), myCalendar.get(Calendar.DAY_OF_MONTH)).show();

            }
        });

我已经通过许多在线链接,但都显示如何在edittext中设置日期,但我想要的是相反的。edittext中有一个值,datepicker对话框将打开,该日期将作为预选值。

共有1个答案

汪博达
2023-03-14

您可以使用参数调用datePickerDialog,

DatePickerDialog dialog = new DatePickerDialog(this, mDateSetListener, year, month, day);

这里的月份、日期和年份是整数。

找到下面的示例代码:

public class MainActivity extends AppCompatActivity {

private EditText chooseDate;
private DatePickerDialog.OnDateSetListener mDateSetListener;
final Calendar myCalendar = Calendar.getInstance();
private Date date;
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy", Locale.getDefault());

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    chooseDate = (EditText) findViewById(R.id.choose_date);

    chooseDate.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            mDateSetListener = new DatePickerDialog.OnDateSetListener() {

                @Override
                public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                    // TODO Auto-generated method stub

                    myCalendar.set(Calendar.YEAR, year);
                    myCalendar.set(Calendar.MONTH, monthOfYear);
                    myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
                    chooseDate.setText(formatter.format(myCalendar.getTime()));
                }

            };
            try {
                if (chooseDate.getText().toString().isEmpty()) {
                    date = new Date();

                } else {
                    date = formatter.parse(chooseDate.getText().toString());
                }
                Calendar calendar = new GregorianCalendar();
                calendar.setTime(date);
                int year = calendar.get(Calendar.YEAR);
                int month = calendar.get(Calendar.MONTH);
                int day = calendar.get(Calendar.DAY_OF_MONTH);
                new DatePickerDialog(MainActivity.this, mDateSetListener, year, month, day).show();
            } catch (ParseException e) {
                Log.d(TAG, "ParseException" + e);
            }
        }
    });
}
 类似资料:
  • 我有一个带有的自定义对话框。在我的上,我有一个按钮,当我按下它时,对话框就会显示出来,我可以从中选择日期。我希望选定的日期显示在我的中的上。我的代码如下: 这是我的主上包含的对话框的代码: 我从中获取日、月和年,并使用 在我的片段中,我使用下面的代码调用我的对话框: 当我运行我的应用程序时,我在以下行中得到一个nullPointerException: 我做错了什么?提前致谢

  • 当单击时,我使用这个问题来获取。请注意,我正在将代码放在一个片段中。我改变了以下内容: 在settime.java中添加了:Context 它告诉我:构造函数没有定义。 我试着把它改成: 当试图运行应用程序时,我会遇到以下错误 appoinfragment.java settime.java

  • 我正试图从回收器视图图像点击打开一个对话框...该对话框包含一个视图页来创建一个滑动视图库.. 错误>>> E/AndroidRuntime:致命异常:main process:com.example.cosmic.zumi_test,pid:22289 java.lang.nullpointerException:试图在Android.support.v4的Android.support.v4的

  • 问题内容: 我正在开发一个程序,该程序可以从文本文件加载和保存数据,并且正在询问用户加载和保存JFileChooser的文件名。 这个问题与 保存 对话框有关:。然后,用户可以在没有任何警告的情况下覆盖现有文件,这 将是一个问题 。 关于如何解决此问题的任何建议?我一直在寻找某种方法或选项,但没有发现任何东西。 提前致谢。 问题答案: 感谢您提供答案,但是我发现了另一个解决方法,可以用这种方法覆盖

  • 我有一个DialogFragment,它有一个包含的视图。每次我显示对话框时,edittext就会有焦点,键盘就会出现。 我怎样才能阻止它自动出现? 这是我的布局

  • 问题内容: 我将要做出一个按钮来采取行动,并将数据保存到数据库中。 用户单击按钮后,我希望JavaScript警报提供“是”和“取消”选项。如果用户选择“是”,则数据将被插入数据库,否则将不执行任何操作。 如何显示这样的对话框? 问题答案: 您可能正在寻找,显示提示并根据用户的决定返回或: