Android 如何将日期和时间保存到特定按钮?
我目前有一个按钮来设置警报。我可以将闹钟和时间保存到这个按钮,但现在我想添加另一个按钮,在那里我可以设置另一个日期和时间。我不知道如何检查单击了哪个按钮,因此将日期保存到此按钮。 这是我用报警按钮做的:Android 如何将日期和时间保存到特定按钮?,android,date,button,time,fragment,Android,Date,Button,Time,Fragment,我目前有一个按钮来设置警报。我可以将闹钟和时间保存到这个按钮,但现在我想添加另一个按钮,在那里我可以设置另一个日期和时间。我不知道如何检查单击了哪个按钮,因此将日期保存到此按钮。 这是我用报警按钮做的: 我创建了两个类 DatePickerFragment.java public class DatePickerFragment extends DialogFragment{ @NonNull @Override public Dialog onCreateDialog(@Nullable Bu
我创建了两个类
DatePickerFragment.java
public class DatePickerFragment extends DialogFragment{
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
// Use the current date as the default date in the picker
Calendar c = Calendar.getInstance();
int jahr = c.get(Calendar.YEAR);
int monat = c.get(Calendar.MONTH);
int tag = c.get(Calendar.DAY_OF_MONTH);
// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), (DatePickerDialog.OnDateSetListener) getActivity(), jahr, monat, tag);
}
}
和TimePickerFragmentDialog.java
public class TimePickerFragment extends DialogFragment {
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
return new TimePickerDialog(getActivity(), (TimePickerDialog.OnTimeSetListener) getActivity(), hour, minute, DateFormat.is24HourFormat(getActivity()));
}
}
在我的Activity.java中,我有以下代码
private StringBuilder ausgewaelteDatum;
AlarmButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogFragment datePicker = new DatePickerFragment();
datePicker.show(getSupportFragmentManager(), "date picker");
}
});
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month);
c.set(Calendar.DAY_OF_MONTH, dayOfMonth);
ausgewaelteDatum = new StringBuilder(DateFormat.getDateInstance(DateFormat.MEDIUM).format((c.getTime())));
DialogFragment timePicker = new TimePickerFragment();
timePicker.show(getSupportFragmentManager(), "time picker");
}
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
ausgewaelteDatum.append(", " + hourOfDay + ":" + minute);
AlarmButton.setText(ausgewaelteDatum.toString());
}
现在,我为第二个按钮添加了此代码,但我不知道如何继续。当我创建一个新的片段时,也许我可以通过点击按钮,但我不知道这是否可行
DatumButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogFragment datePicker = new DatePickerFragment();
datePicker.show(getSupportFragmentManager(), "date picker");
}
});
您可以这样做:
class MainActivity ... {
private int clicked = 0;
private static final int NOBODY = 0;
private static final int ALARM = 1;
private static final int DATUM = 2;
private StringBuilder ausgewaelteDatum;
private Button AlarmButton, DatumButton; //Consider using standard case notation
@Override
... onCreate(...) {
AlarmButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clicked = ALARM;
DialogFragment datePicker = new DatePickerFragment();
datePicker.show(getSupportFragmentManager(), "date picker");
}
});
DatumButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clicked = DATUM;
DialogFragment datePicker = new DatePickerFragment();
datePicker.show(getSupportFragmentManager(), "date picker");
}
});
}
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month);
c.set(Calendar.DAY_OF_MONTH, dayOfMonth);
ausgewaelteDatum = new StringBuilder(DateFormat.getDateInstance(DateFormat.MEDIUM).format((c.getTime())));
DialogFragment timePicker = new TimePickerFragment();
timePicker.show(getSupportFragmentManager(), "time picker");
}
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
ausgewaelteDatum.append(", " + hourOfDay + ":" + minute);
if (clicked == ALARM)
AlarmButton.setText(ausgewaelteDatum.toString());
else if (clicked == DATUM)
DatumButton.setText(ausgewaelteDatum.toString());
clicked = NOBODY;
}
}
如果我理解你的问题。谢谢,这正是我需要的。我刚刚删除了
私有静态final int NOBODY=0代码>行,因为我认为不需要它,而且没有它也可以工作。