我利用图书馆从https://github.com/afollestad/material-dialogs 定制的DatePicker我使用该库,因为我需要改变颜色等Android的 - 的DatePicker如何保持设置当前日期
而且我的代码现在看起来像这样:
public class EditProfileActivity extends ActionBarActivity {
private TextView birthdate;
private int mYear, mMonth, mDay;
private DatePicker datePicker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_editprofile);
birthdate = (Button) findViewById(R.id.birthdateTextView);
birthdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setCustomDate();
}
});
/* final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH); */
}
public void setCustomDate() {
new MaterialDialog.Builder(this)
.title(R.string.pilih_tanggal)
.customView(R.layout.datepicker_layout, true)
.positiveText(R.string.ok_caps)
.callback(new MaterialDialog.ButtonCallback() {
@Override
public void onPositive(final MaterialDialog dialog) {
super.onPositive(dialog);
datePicker = (DatePicker) dialog.findViewById(R.id.datePicker1);
datePicker.init(datePicker.getYear(), datePicker.getMonth(), datePicker.getDayOfMonth(), new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
}
});
birthdate.setText(new StringBuilder()
.append(datePicker.getDayOfMonth())
.append("").append(datePicker.getMonth())
.append("-").append(datePicker.getYear()));
}
})
.positiveColorRes(R.color.ColorPrimary)
.negativeText(R.string.cancel)
.negativeColorRes(R.color.ColorPrimary)
.show();
}
所以,我成功地将TextView作为DatePicker设置的当前日期,但是问题在于当我再次点击TextView时,日期会返回上次日期(默认)。
以上是当我要去挑选日期。 以下是当我成功地将文本选定日期。
但可悲的是,当我再次点击的TextView,日期回默认值,而不是我选择的日期。
可能有人给我一个方向,以解决?我所知道的,到目前为止是使用
OnDateSetListener
但如何做到这一点与图书馆也?