所以我在片段中创建对话框时遇到错误
以下是代码:
public Dialog onCreateDialog(Bundle savedInstanceState) {
int title = getArguments().getInt("title");
return new AlertDialog.Builder(getActivity())
.setIcon(R.drawable.logo)
.setTitle(R.string.groupDetails_rename)
.setPositiveButton(R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
((GroupDetailsFragment) getSupportFragmentManager())
.doPositiveClick();
}
}).create();
}
我在((GroupDetailsFragment) getSupportFragmentManager())
我应该写什么而不是getSupportFragmentManager()
?
答案 0 :(得分:2)
我认为您的错误与您使用的Fragment有关。更具体地说,这取决于你使用的天气
getFragmentManager()
或
getSupportFragmentManager()
检查GroupDetailsFragment的.java文件,看看你实际导入的Fragment类。
此外,您的错误可能与您的Activity不是FragmentActivity的子类有关。请检查您的活动是否扩展了FragmentActivity 。
<强>更新强>
如果您在Dialog中获取FragmentManager时遇到问题,那是因为“getFragmentManager()”是FragmentActivity的一种方法,因此不能在Dialog中使用。要获取活动,只需调用 getActivity(),然后获取FragmentManager:
getActivity().getFragmentManager();
或获取SupportFragmentManager()
getActivity().getSupportFragmentManager();
答案 1 :(得分:2)
GroupDetailsFragment f = (GroupDetailsFragment) getSupportFragmentManager().findFragmentByTag("tag");
f.doPositiveClick();
当您调用“show()”时,“tag”将被传递
getSupportFragmentManager-&GT; v4的 getFragmentManager-&GT; NATIV