1、首先在xml文件中自定义一个想要dialog显示出来的布局 eg:info_edit 且使用布局relativeLayout
2、在java文件总添加AlretDialog代码
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); RelativeLayout rela_dialog = (RelativeLayout) getLayoutInflater().inflate(R.layout.info_edit_view, null); final AlertDialog dialog = builder.create(); dialog.show(); dialog.getWindow().setContentView(rela_dialog);
mInfo_Save = rela_dialog.findViewById(R.id.point_info_save); mInfo_Cancel = rela_dialog.findViewById(R.id.point_info_cancel); mInfo_Save.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) {Log.d(TAG, "onClick: 点击" );dialog.dismiss(); }});mInfo_Cancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { dialog.cancel(); }});
此时布局已成功运行
注:假如布局中含有EditText,如上面,那点击输入框软键盘并没有弹出来,此时需要添加代码
//此行代码代表点击出现软键盘
dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
//此行代表软键盘一直存在
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);