【发布时间】:2021-06-24 11:59:03
【问题描述】:
我正面临一个问题,我从 fragment1 打开一个对话框(对话框 1),并且 Dialog1 上有一个按钮(更改),如果我点击该按钮:Dialog1 应该被关闭,并且在同一个 fragment1 上应该被替换片段2(另一个片段)
public class PedigreeAnalysis extends Fragment //My Fragment1
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
showDialog();
}
// SHOW DIALOG FUNCTION IS SHOWN BELOW `
void showDialog() { //Function to show the dialog starts...
Dialog dialog= new Dialog(getActivity());
Button btn = dialog.findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Code for opening new fragment and dismissing the dialog.
getActivity().getSupportFragmentManager().beginTransaction()
.replace(R.id.fragment1, new Fragment2()).commit();
dialog.dismiss();
}
});
}//Function Ends Here....
我什至尝试过(先关闭对话框,然后用函数替换它,但它也不起作用)的相反逻辑:
dialog.dismiss();//First dismissing the dialog
getActivity().getSupportFragmentManager().beginTransaction()
.replace(R.id.fragment1, new Fragment2()).commit();//Replacing the fragment
【问题讨论】:
-
那么问题出在哪里?
fragment1是怎么添加的? -
我会建议您为片段交易使用导航视图和导航图。它更容易并且更适合您想要实现的内容
标签: java android android-fragments android-dialogfragment customdialog