0

I am using compile 'com.wdullaer:materialdatetimepicker:2.3.0' library for Open and Close Hour (AM & PM). I would like to show TimePickerDialog again for PM after user chooses AM. And then, I would like to show AM+PM data on TextView. Here is 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);
    }
Pyae Phyo
  • 127
  • 1
  • 1
  • 9

2 Answers2

1

Show the second TimePicker from the first one's onTimeSet method.

@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
}

And then, set the TextView's text from the second TimePicker's onTimeSet, when you have both times.

Something like this:

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();
earthw0rmjim
  • 19,027
  • 9
  • 49
  • 63
0

You have to handle the condition for that in onTimeSet method

@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 );
    }        

}
mdDroid
  • 3,135
  • 2
  • 22
  • 34