Reputation: 4827
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?
Upvotes: 1
Views: 190
Reputation: 2727
You could do some thing like
Bundle bundle = new Bundle();
bundle.putInt("btnNumber", 1); //or 0
DialogFragment newFragment = new TimePickerFragment();
newFragment.setArguments(bundle);
newFragment.show(getActivity().getFragmentManager(), "timePickerExit");
and then in fragment make your on interface
private OnCompleteListener mListener;
/// your otherDialogStuff
public static interface OnCompleteListener {
public abstract void onComplete(Int fragNumber, int hourOfDay, int minute);
}
// make sure the Activity implemented it
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
this.mListener = (OnCompleteListener)activity;
}
catch (final ClassCastException e) {
throw new ClassCastException(activity.toString() + " must implement OnCompleteListener");
}
}
and then onTimeSet
call
mListener.onComplete(0or1 ,12,12);
and your activity should implement TimePickerFragment.OnCompleteListener
Upvotes: 1
Reputation: 2577
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
}
}
Upvotes: 1