gpt4 book ai didi

android - 将数据从 dialogfragment 传递到 fragment

转载 作者:太空狗 更新时间:2023-10-29 15:09:27 31 4
gpt4 key购买 nike

我得到了一个包含三个 fragment 的 Activity ,我从其中一个 fragment 调用了 MyDialogFragment.show() 方法。对话框出现,我做了一些文本输入并尝试将此文本输入传递回 fragment 。到目前为止一切顺利。

我通过“父” fragment 的 onActivityResult() 结合 set/getTargetFragment() 调用(参见下面的代码)设置反向通信。我确实在我的父 fragment 中得到了那个结果,但我无法传递一些数据。每次尝试创建 Intent 并将一些额外数据放入其中都会失败。我不知道我是不是瞎了或这样......但我不应该能够在 onClick() 方法中创建一个 Intent 吗?!

感谢任何帮助!

在我的对话 fragment 中:

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();
}

在我的 fragment 中:

public void onClick(View v) {
ChooseTitleDialog dialog = ChooseTitleDialog.newInstance(mTimerObject.getmTitle());
dialog.setTargetFragment(mThis, 42);
dialog.show(mFragmentMgr, "choose_title_dialog");
}

最佳答案

而且我有点瞎了!在创建 Intent 并考虑正确的上下文(getActivity()、getParentFragment().getActivity()、...)或其他可能性来创建对我的 fragment 的回调时,我没有浪费时间思考其他一些错误原因。所以我尝试从 (mEditText) 获取文本的 EditText-Element 没有初始化:\

一些修改使其工作:

View v = inflater.inflate(R.layout.dialog_choose_title, null);
mEditText = (EditText) v.findViewById(R.id.id_edit_choose_title);
mEditText.setText(mTitle);
builder.setView(v);

感谢您抽出宝贵时间 Gokhan!

关于android - 将数据从 dialogfragment 传递到 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18197664/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com