Как показать дважды TimePickerDialog?
Я использую компилируемую библиотеку 'com.wdullaer:materialdatetimepicker:2.3.0' для часов открытия и закрытия (AM & PM). Я хотел бы снова показать TimePickerDialog для PM после того, как пользователь выберет AM. И затем, я хотел бы показать данные AM+PM на TextView. Здесь One TimePickerDialog.
layout_time.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Calendar now = Calendar.getInstance();
TimePickerDialog tpd = TimePickerDialog.newInstance(
MainActivity.this,
now.get(Calendar.HOUR_OF_DAY),
now.get(Calendar.MINUTE),
false
);
tpd.show(getFragmentManager(), "Timepickerdialog");
}
});
@Override
public void onResume() {
super.onResume();
TimePickerDialog tpd = (TimePickerDialog) getFragmentManager().findFragmentByTag("Timepickerdialog");
if (tpd != null) tpd.setOnTimeSetListener(this);
}
@Override
public void onTimeSet(RadialPickerLayout view, int hourOfDay, int minute, int second) {
String time = hourOfDay + ":" + minute + " am";
txt_time.setText(time);
}
2 ответа
Покажи второе TimePicker
от первого onTimeSet
метод.
@Override
public void onTimeSet(RadialPickerLayout view, int hourOfDay, int minute, int second) {
String time = hourOfDay + ":" + minute + " am";
// call the second TimePicker's show() method from here
}
А затем установите TextView
текст от второго TimePicker
"s onTimeSet
, когда у вас оба раза.
Что-то вроде этого:
final Calendar now = Calendar.getInstance();
final TextView yourTextView = (TextView) findViewById(R.id.yourTextView);
new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
String time1 = hourOfDay + ":" + minute; // time from first picker
// showing a second TimePicker immediately after the first time was set
new TimePickerDialog(YourActivity.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
String time2 = hourOfDay + ":" + minute; // time from second picker
yourTextView.setText(time1 + time2); // setting the TextView's text using both times
}
}, now.get(Calendar.HOUR_OF_DAY), now.get(Calendar.MINUTE), false).show();
}
}, now.get(Calendar.HOUR_OF_DAY), now.get(Calendar.MINUTE), false).show();
Вы должны справиться с условием для этого в onTimeSet
метод
@Override
public void onTimeSet(RadialPickerLayout view, int hourOfDay, int minute, int second) {
if(amSelected){
String amTime = hourOfDay + ":" + minute + " am";
// call the second TimePicker's show() method from here
}else if(pmSelected){
String pmTime = hourOfDay + ":" + minute + " pm";
}
if(amSelected && pmSelected){
//Set Data To textView
yourtextView.setText(amTime +"-"+pmTime );
}
}