Aak*_*ash 0 android android-datepicker android-calendar
嗨,我正在制作一个约会应用程序,我使用firebase 数据库作为我的后端。
我想限制用户选择以前的日期。我从这里得到了解决方案
但我不知道把代码放在哪里才能让它工作。我把我的代码放在下面,请指导我做同样的事情......
另一个问题是,如果用户改变系统日期和时间将在日期选择日期也改变了,有什么办法,我可以限制用户选择当前日期或明天的日期只,但不是昨天的日期。
例如。取 ServerValue.TIMESTAMP 并将其转换为日期,然后比较所选日期和从 TIMESTAMP 获得的日期。
约会.java
/**
* A simple {@link Fragment} subclass.
*/
public class Appointment extends Fragment {
@BindView(R.id.apointFirstName)
EditText apointFirstName;
@BindView(R.id.apointLastName)
EditText apointLastName;
@BindView(R.id.apointPhoneNumber)
EditText apointPhoneNumber;
@BindView(R.id.apointEmail)
EditText apointEmail;
@BindView(R.id.apointDate)
EditText apointDate;
@BindView(R.id.availTimeSpinner)
Spinner availTimeSpinner;
@BindView(R.id.bookAppointmentButton)
Button book_btn;
@BindView(R.id.cancelAppointmentButton)
Button cancel_btn;
Calendar mCal;
int day, month, year;
String mCurrentDate;
String fname,lname,email;
int phone;
String timestamp = String.valueOf(ServerValue.TIMESTAMP);
public Appointment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_appointment, container, false);
ButterKnife.bind(this,view);
setCurrentDate();
apointDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectDate();
}
});
return view;
}
// set the current date on the text view
private void setCurrentDate() {
mCal = Calendar.getInstance();
day = mCal.get(Calendar.DAY_OF_MONTH);
month = mCal.get(Calendar.MONTH);
year = mCal.get(Calendar.YEAR);
month = month +1;
mCurrentDate = (day+"/"+month+"/"+year);
}
//open the datepickerdialogue
private void selectDate() {
if(getActivity()!=null) {
DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
month = month + 1;
apointDate.setText(dayOfMonth + "/" + month + "/" + year);
}
}, year, month, day);
datePickerDialog.show();
}
}
}
Run Code Online (Sandbox Code Playgroud)
添加以下行用户不能选择旧数据..
datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1079 次 |
| 最近记录: |