1.在mainactivity.java中添加以下方法:
public void dualFunctions(View view) {
if(view.getTag() == null) view.setTag("0");
if(view.getTag().equals("0")){
view.setTag("1");
view.setBackgroundColor(Color.GREEN);
setDate2(view);
}else{
view.setTag("0"); // Remove this line for one shoot.
view.setBackgroundColor(Color.YELLOW);
diff(view);
}
}
2.更改布局中的按钮以使用此方法。
该方法在日期选择和计算之间切换。如果只允许日期选择一次,则删除带注释的行。
希望有帮助!
更新时间:
public void onDateSet(DatePicker view, int year, int month, int day) {
Button btnDate2 = (Button) getActivity().findViewById(R.id.btnDate2);
String stringOfDate = day + "." + (month + 1) + "." + year;
btnDate2.setText(stringOfDate);
MainActivity activity = (MainActivity)getActivity();
activity.diff(btnDate2);
}
要求3:
如果不是,则添加以检查条件。
private final static int VERY_NEAR_DATE = 30;
public void diff(View view) {
SimpleDateFormat myFormat = new SimpleDateFormat("dd.MM.yyyy");
CharSequence inputString1 = editTextDate5.getText();
try {
LocalDate date1 = LocalDate.parse(inputString1, dateFormatter);
CharSequence inputString2 = button2.getText();
try {
LocalDate date2 = LocalDate.parse(inputString2, dateFormatter);
long diffDate = ChronoUnit.DAYS.between(date1, date2);
txtResult.setText(String.valueOf(diffDate));
diffDate = (Long)ok2.getSelectedItem() - diffDate;
if(diffDate < 0){
txtResult.setTextColor(Color.RED);
Toast.makeText(this, "Date not allowed!!", Toast.LENGTH_SHORT).show();
}else if(diffDate < VERY_NEAR_DATE) {
txtResult.setTextColor(Color.YELLOW);
Toast.makeText(this, "Date too near!", Toast.LENGTH_SHORT).show();
}
} catch (DateTimeParseException dtpe) {
Toast.makeText(this, "Date2 is not a valid date: " + inputString2, Toast.LENGTH_SHORT).show();
}
} catch (DateTimeParseException dtpe) {
Toast.makeText(this, "Date1 is not a valid date: " + inputString1, Toast.LENGTH_SHORT).show();
}
}
如果在微调器中更改选择后需要更新视图,则在onCreate()中添加以下代码:
ok2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
diff(null);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {}
});