从 onTimeSet 上的片段获取标签
Getting tag from fragment on onTimeSet
我有一个处理片段的 MainActivity。在我做的其中一个片段上:
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");
}
});
在我的 MainActivity 上我得到了结果:
public class MainActivity extends AppCompatActivity implements TimePickerDialog.OnTimeSetListener
具有以下功能:
@Override
public void onTimeSet(TimePicker timePicker, int hourOfDay, int minute) {
//Who called it?
}
我怎么知道在 onTimeSet 上调用它的是 enterBtn 还是 exitBtn?
您可以为进入和退出按钮设置布尔标志。
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");
}
});
并在 Override 方法中
@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
}
}
你可以做一些像
Bundle bundle = new Bundle();
bundle.putInt("btnNumber", 1); //or 0
DialogFragment newFragment = new TimePickerFragment();
newFragment.setArguments(bundle);
newFragment.show(getActivity().getFragmentManager(), "timePickerExit");
然后在片段中使你的 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");
}
}
然后onTimeSet
调用
mListener.onComplete(0or1 ,12,12);
你的 activity 应该实现 TimePickerFragment.OnCompleteListener
我有一个处理片段的 MainActivity。在我做的其中一个片段上:
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");
}
});
在我的 MainActivity 上我得到了结果:
public class MainActivity extends AppCompatActivity implements TimePickerDialog.OnTimeSetListener
具有以下功能:
@Override
public void onTimeSet(TimePicker timePicker, int hourOfDay, int minute) {
//Who called it?
}
我怎么知道在 onTimeSet 上调用它的是 enterBtn 还是 exitBtn?
您可以为进入和退出按钮设置布尔标志。
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");
}
});
并在 Override 方法中
@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
}
}
你可以做一些像
Bundle bundle = new Bundle();
bundle.putInt("btnNumber", 1); //or 0
DialogFragment newFragment = new TimePickerFragment();
newFragment.setArguments(bundle);
newFragment.show(getActivity().getFragmentManager(), "timePickerExit");
然后在片段中使你的 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");
}
}
然后onTimeSet
调用
mListener.onComplete(0or1 ,12,12);
你的 activity 应该实现 TimePickerFragment.OnCompleteListener