【问题标题】:Material Design datepickerdialog材料设计日期选择器对话框
【发布时间】:2015-07-15 10:32:44
【问题描述】:

我想知道我是否可以为我的 android 应用程序实现材料设计 datepickerdialog

代码

    import java.util.Calendar;
    import android.app.DatePickerDialog;
    import android.app.Dialog;
    import android.os.Bundle;
    import android.support.v4.app.DialogFragment;
    import android.widget.DatePicker;
    import android.widget.EditText;
    public class SelectDateFragment  extends DialogFragment implements
    DatePickerDialog.OnDateSetListener {
    EditText mEdit;
    public Dialog onCreateDialog(Bundle savedInstanceState) {
          final Calendar calendar = Calendar.getInstance();
          int yy = calendar.get(Calendar.YEAR);
          int mm = calendar.get(Calendar.MONTH);
          int dd = calendar.get(Calendar.DAY_OF_MONTH);
          return   new DatePickerDialog(getActivity(), this, yy, mm, dd);
    }
    @Override
    public void onDateSet(DatePicker view, int yy, int mm, int dd) {
         populateSetDate(yy, mm + 1, dd);
    }
    public void populateSetDate(int year, int month, int day) {
         mEdit = (EditText) getActivity().findViewById(R.id.date);
         mEdit.setText(day + "/" + month + "/" + year);
    }
    }

简单地说,我不想使用第三方库。我只想知道是否可以使用 android 支持库以及如何完成。

【问题讨论】:

标签: android datetimepicker


【解决方案1】:

https://github.com/wdullaer/MaterialDateTimePicker

一个好的材料日期选择器库。 易于使用。

只需将 compile'c​​om.wdullaer:materialdatetimepicker:1.4.2' 添加到您的应用中:build.gradle

例如:日期选择器对话框

// Show a datepicker when the dateButton is clicked
    dateButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Calendar now = Calendar.getInstance();
                DatePickerDialog dpd = DatePickerDialog.newInstance(
                        MainActivity.this,
                        now.get(Calendar.YEAR),
                        now.get(Calendar.MONTH),
                        now.get(Calendar.DAY_OF_MONTH)
                );
                dpd.setThemeDark(modeDarkDate.isChecked());
                dpd.vibrate(vibrateDate.isChecked());
                dpd.show(getFragmentManager(), "Datepickerdialog");
            }
        });

并从其实现方法“onDateSet”函数中获取您选择的日期

@Override
    public void onDateSet(DatePickerDialog view, int year, int monthOfYear, int dayOfMonth) {
        String date = "You picked the following date: "+dayOfMonth+"/"+(++monthOfYear)+"/"+year;
        dateTextView.setText(date);
    }

【讨论】:

【解决方案2】:

您不能在较低版本中使用材料设计选择器,支持库没有这些小部件。您将不得不使用 3rd 方库。你可以试试这个库,作者把你在Android Lollipop中看到的Android Framework中的DateTimePicker编译成一个库,它支持Android 4.0以上的版本。

要将其添加到您的应用中,只需在 build.gradle 中添加以下行:

dependencies {
  compile 'com.wdullaer:materialdatetimepicker:1.4.1'
}

在github上找到它link

取自Android Framework的代码可以在here找到

【讨论】:

    【解决方案3】:

    是的,你可以,但是在这里解释会有点麻烦。作为提示,您可以使用 this 等库。

    虽然 Google 建议您使用 os 版本的本地日期选择器。他们声称用户会更熟悉这个过程。

    祝你好运。

    【讨论】:

    • 你能举出谷歌在哪里推荐这个吗?
    猜你喜欢
    • 2017-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-16
    • 2015-08-03
    • 2018-02-16
    相关资源
    最近更新 更多