亲爱的所有人。 我正在使用日期选择器对话框进行测试,当我设置它时,它会显示看起来像图像。 但是,现在我想显示这个月的剩余日期。 例如,我设置max是2017年7月20日,它只显示下个月的第一天(2017年8月1日),它隐藏了从21/07 - 30/07的日子。 每个人都可以帮助我。 非常感谢你!
这是我的代码
public class MainActivity extends AppCompatActivity {
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.but);
final Calendar calendar = Calendar.getInstance();
final int year = calendar.get(Calendar.YEAR);
final int month = calendar.get(Calendar.MONTH);
final int day = calendar.get(Calendar.DAY_OF_MONTH);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DatePickerDialog dialog = new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
}
}, year, month, day);
//dialog.getDatePicker().setMinDate(System.currentTimeMillis());
dialog.getDatePicker().setMaxDate(calendar.getTimeInMillis());
dialog.show();
}
});
}
答案 0 :(得分:0)
我想你可以尝试下面的代码:
@SuppressLint("ValidFragment")
public class SelectDateFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
public SelectDateFragment() {
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
DatePickerDialog datePickerDialog;
int yy = calendar.get(Calendar.YEAR);
int mm = calendar.get(Calendar.MONTH);
int dd = calendar.get(Calendar.DAY_OF_MONTH);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
datePickerDialog=new DatePickerDialog(this,android.R.style.Theme_Material_Light_Dialog, this, yy, mm, dd);
else
datePickerDialog=new DatePickerDialog(this, this, yy, mm, dd);
Calendar maxDate=Calendar.getInstance();
maxDate.add(Calendar.DATE, 1);
// here you are adding maxdate
datePickerDialog.getDatePicker().setMaxDate(maxDate.getTimeInMillis());
return datePickerDialog;
}
public void onDateSet(DatePicker view, int yy, int mm, int dd) {
// get the date here and use it
}
}
以及如何使用上述课程
首先声明一个对象
DialogFragment dateFragment = new SelectDateFragment();
点击某个按钮或其他内容时显示
dateFragment.show(getFragmentManager(), "DatePicker");