我有一个包含三个片段的活动。在第一个片段(HomeFragment)中,我想在单击按钮时显示一个自定义对话框。我尝试了许多教程,但没有一部可以。我创建了扩展DialogFragment的此类:
public class ShowNabzaDialog extends DialogFragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.content_nabza, container, false);
getDialog().setTitle("");
ImageButton closeNabzaButton = rootView.findViewById(R.id.close_nabzsa_btn);
closeNabzaButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
}
});
return rootView;
}
}
然后在Home Fragment中,我创建了一个调用片段管理器的按钮:
openNabzaButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager fm = getFragmentManager();
ShowNabzaDialog showNabzaDialog = new ShowNabzaDialog();
showNabzaDialog.show(fm, "hi");
}
});
它不起作用。当我单击按钮时,应用程序崩溃。我提到了DialogFragment的文档,但是不清楚。任何帮助表示赞赏。
答案 0 :(得分:0)
首先为警报创建XML布局 然后在您的点击监听器中使用此代码
Dialog dialogBuilder = new Dialog(getContext());
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View dialogView = inflater.inflate(R.layout.your_alert_layout, null);
dialogBuilder.setContentView(dialogView);
dialogBuilder.show();```