Jos*_*ura 17 android android-fragments android-alertdialog
我正在尝试制作Fragment一个Dialog使用DialogFragmentAPI.
我的对话框只有一个EditText视图,我想将写入的字符串传回给它Fragment.
我能够从中显示对话框Fragment,但是我无法从输入字段中检索字符串回到我的Fragment.
我尝试了两种方法来创建一个对话框:覆盖DialogFragment.onCreateView方法并编写整个对话框的视图并覆盖DialogFragment.onCreateDialog并使用AlertDialog.Builder它来更容易编写按钮行为.
关于将事件传递回对话框主机的对话框的 Android文档是关于主机始终是一个Activity永远不是a Fragment.我试图概括在我的情况下使用它的行为,但我不能.
我尝试使用DialogFragment.onAttach回调以获取Activity参考和使用之间的接口Fragment以及DialogFrament和它工作正常,但我不能检索Fragment从Activity使它工作.
有人可以帮忙举个简短的例子吗?
提前致谢
小智 43
你可以使用setTargetFragment和getTargetFragment方法Fragment.您可以将自己设置Fragment为目标,DialogFragment然后从中检索对它的引用DialogFragment.
你可以使用回调.只需在对话框中实现一个"完成"按钮或类似的东西.
所以在你的dialogfragment做这样的事情:
protected OnDialogClickedListener callback = null;
public interface OnDialogClickedListener {
public abstract void onDialogClicked(int position);
}
public void setOnDialogClickedListener(OnDialogClickedListener l){
callback = l;
}
button.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
callback.onDialogClicked(position);
dismiss();
}
});
Run Code Online (Sandbox Code Playgroud)
在你的活动中做这样的事情:
final YourFragment f = YourFragment .newInstance(0);
f.show(ft, "YourFragment ");
f.setOnDialogClickedListener(new OnDialogClickedListener() {
@Override
public void onDialogClicked(int position) {
updateText(position);
f.dismiss();
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12515 次 |
| 最近记录: |