如何在AlertDialog CustomView中的DatePicker中设置AlertDialog CustomView中的当前所选日期

时间:2018-01-18 16:28:39

标签: android datepicker alertdialog android-dialogfragment

我有AlertDialog使用自定义视图。该视图包含 textview DatePicker 。我想在textview中设置datepicker的当前日期。

这是AlertDialog的屏幕截图 enter image description here

我的AlertDialog如下:

AlertDialog.Builder alert = new AlertDialog.Builder(this);

        TextView titleText = (TextView) new TextView(getApplicationContext());
        titleText.setText("Add Book and Renew Date");
        titleText.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
        titleText.setGravity(Gravity.CENTER);
        titleText.setPadding(10,10,10,10);
        titleText.setTypeface(null, Typeface.BOLD);

        alert.setCustomTitle(titleText)
                .setView(R.layout.alertdialog_content)
                .setPositiveButton("Add", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(getApplicationContext(), "ADDED", Toast.LENGTH_LONG).show();
                    }
                })
                .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(getApplicationContext(), "CANCELLED", Toast.LENGTH_LONG).show();
                        finish();
                    }
                });

        AlertDialog alertDialog = alert.create();
        Log.d("BeforShow", "HEREEEE");
        alertDialog.show();

我想将DatePicker中的当前设置日期设置为当前设置日期 textview,以便用户可以看到他/她选择的日期。

2 个答案:

答案 0 :(得分:3)

DatePicker 101在这里,对不起双关语

DatePickerDialog datePickerDialog = new DatePickerDialog(context, new DatePickerDialog.OnDateSetListener() {

        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            //here you go
        }
    }, mYear, mMonth, mDay);

    datePickerDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
        @Override
        public void onCancel(DialogInterface dialog) {
            ]
            dialog.dismiss();
        }
    });
    datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
    datePickerDialog.show();

答案 1 :(得分:2)

我希望您需要更改“当前设置日期”而不是问题中提到的“当前设置时间”。无论如何...

您在自定义对话框中有日期选择器的实例。使用open_socket(),您可以将文本视图更改为此方法。这会在更改日期时返回日期,日期和月份值。当日期选择器发生日期更改时,将调用此方法。

详细参考:https://developer.android.com/reference/android/widget/DatePicker.OnDateChangedListener.html

上帝之速!!