材料设计datepickerdialog

时间:2015-07-15 10:32:44

标签: android datetimepicker

我想知道我是否可以为我的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支持库以及如何完成。

2 个答案:

答案 0 :(得分:6)

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");
            }
        });

并从其implements方法'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);
    }

答案 1 :(得分:3)

您不能在较低版本中使用材料设计选择器,支持库没有这些小部件。您将不得不使用第三方库。您可以尝试使用此库,作者从DateTimePicker中看到的Android框架中获取了Android Lollipop并编译成了一个库,它支持来自Android 4.0的病毒。

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

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

在github link

上找到它

可以找到从Android Framework获取的代码here