我有一个带有三个片段的活动,并从其中一个片段调用MyDialogFragment.show()方法。对话框出现后,我进行一些文本输入并尝试将此文本输入传回到片段。到目前为止还不错。
我通过 onActivityResult()结合 set/getTargetFragment()调用设置了回传通信(见下面的代码)。我确实在我的父片段中获得了结果,但是我无法传递某些数据。每次尝试创建意图并在其中添加一些额外数据都会失败。我不知道我是否瞎了或者什么的... 但是我难道不能在 onClick()方法内部创建意图吗?
非常感谢任何帮助!
我的对话框片段内部:
在我的片段中:
我通过 onActivityResult()结合 set/getTargetFragment()调用设置了回传通信(见下面的代码)。我确实在我的父片段中获得了结果,但是我无法传递某些数据。每次尝试创建意图并在其中添加一些额外数据都会失败。我不知道我是否瞎了或者什么的... 但是我难道不能在 onClick()方法内部创建意图吗?
非常感谢任何帮助!
我的对话框片段内部:
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getParentFragment().getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
builder.setView(inflater.inflate(R.layout.dialog_choose_title, null));
builder.setTitle(mTitle)
.setPositiveButton(R.string.dialog_save_title, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent(getParentFragment().getActivity(), MyMainClass.class);
intent.putExtra("title", mEditText.getText().toString());
getTargetFragment().onActivityResult(getTargetRequestCode(), Activity.RESULT_OK, intent);
dismiss();
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dismiss();
}
});
return builder.create();
}
在我的片段中:
public void onClick(View v) {
ChooseTitleDialog dialog = ChooseTitleDialog.newInstance(mTimerObject.getmTitle());
dialog.setTargetFragment(mThis, 42);
dialog.show(mFragmentMgr, "choose_title_dialog");
}