我有一个场景,我想通过已打开的对话框片段中的按钮单击打开对话碎片。我希望原件要么保持打开状态,要么打开原件,或隐藏原件,然后在第二个对话框片被取消时重新打开原件。只是想知道在我尝试这样做之前这是否可行并且可能浪费我的时间。有人可以建议吗?
答案 0 :(得分:0)
继上述评论后,我发现以下内容似乎有效(虽然尚未实施逻辑,但在测试手机上编译和运行)。我用以下代码替换了上面的onAttach方法。
@Override
public void onAttach(Context context) {
super.onAttach(context);
TextPropertiesDialogFragment prev = (TextPropertiesDialogFragment) getFragmentManager().findFragmentByTag("TextPropertiesDialogFragment");
if (prev != null) {
if (prev instanceof OnColourPickerFragmentInteractionListener) {
mListener = (OnColourPickerFragmentInteractionListener) prev;
} else {
throw new RuntimeException(prev.toString()
+ " must implement OnFragmentInteractionListener");
}
}
}
作为参考,这个onAttach方法位于名为OnColourPickerDialogFragment的第二个对话框片段中。 TextPropertiesDialogFragment是从活动调用的第一个dialogfragment。为了完整性,我在下面包含了监听器和接口的定义。
public class TextPropertiesDialogFragment extends DialogFragment implements View.OnClickListener, ColourPickerDialogFragment.OnColourPickerFragmentInteractionListener{
public void colourPickerCallBackMethod(Bundle bundle){
//Do some work here
}
//........
}
public class ColourPickerDialogFragment extends DialogFragment implements View.OnClickListener {
private View topLevelFragmentView;
private OnColourPickerFragmentInteractionListener mListener;
private Bundle callBackBundle;
public interface OnColourPickerFragmentInteractionListener{
void colourPickerCallBackMethod(Bundle callBackBundle);
}
//......
}