官方推荐使用dialogfragment,而不是直接使用dialog,因为dialogfragment可以更方便的管理生命周期。
public class DialogTest extends DialogFragment { @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); LayoutInflater inflater = getActivity().getLayoutInflater(); View view = inflater.inflate(R.layout.sdf, null); builder.setView(view) // Add action buttons .setPositiveButton("登录", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int id) { } }).setNegativeButton("取消", null); Dialog dialog = builder.create(); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);//不显示标题 return dialog; } }然后只需要在activity中调用即可
DialogTest dialogTest = new DialogTest(); dialogTest.show(getSupportFragmentManager(),"dialog");show方法赋予fragment一个标签~~
如果不需要有系统提供的按钮的话 可以直接这样
public class DialogTest extends DialogFragment { @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉dialog的标题栏 return inflater.inflate(R.layout.sdf,container,false); } }