Search code examples
androidandroid-dialogfragmentandroid-timepicker

Getting tag from fragment on onTimeSet


I have an MainActivity which handles fragments. On one of the fragments I do:

enterBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            DialogFragment newFragment = new TimePickerFragment();
            newFragment.show(getActivity().getFragmentManager(), "timePickerExit");

        }
    });

    exitBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            DialogFragment newFragment = new TimePickerFragment();
            newFragment.show(getActivity().getFragmentManager(), "timePickerEnter");

        }
    });

And on my MainActivity I get the result:

public class MainActivity extends AppCompatActivity implements TimePickerDialog.OnTimeSetListener

with the function:

@Override
public void onTimeSet(TimePicker timePicker, int hourOfDay, int minute) {

//Who called it?
}

How can I know at onTimeSet who called it enterBtn or exitBtn?


Solution

  • You can set a boolean flag for enter and exit button.

    isExit = false;
    enterBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
    
            isExit = false;
            DialogFragment newFragment = new TimePickerFragment();
            newFragment.show(getActivity().getFragmentManager(), "timePickerExit");
    
        }
    });
    
    exitBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
    
            isExit = true;
            DialogFragment newFragment = new TimePickerFragment();
            newFragment.show(getActivity().getFragmentManager(), "timePickerEnter");
    
        }
    });
    

    and in the Override method

    @Override
    public void onTimeSet(TimePicker timePicker, int hourOfDay, int minute) {
    
        if(isExit)
        {
            // Do your task here if Exit button click
        }
         else
        {
            // Do your task here if Enter button click
        }
    }