自定义AlertDialog的写法一般有二种:
方法1
private void showMyDialog(int layoutId){
AlertDialog myDialog = new AlertDialog.Builder(context).create();
myDialog .setCancelable(false);
myDialog .show();
Window window = myDialog .getWindow();
window.setContentView(layoutId);
window.setGravity(Gravity.CENTER);
window.setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
}
方法 2
private void showMyDialog(int layoutId){
LayoutInflater inflater = LayoutInflater.from(mContext);
View fourView = inflater.inflate(layoutId, null);
AlertDialog myDialog = new AlertDialog.Builder(context).create();
myDialog .show();
myDialog .getWindow().setContentView(fourView);
}
以上二种方法都可以自定义Dialog,并且效果还不错,但是如果Dialog里面有EditText就会遇到一个问题,怎么样
都打不开软键盘,也就无法输入,如果碰到这种情况的话,请看第三种写法:
方法 3
private void showMyDialog(int layoutId){
LayoutInflater inflater = LayoutInflater.from(mContext);
View fourView = inflater.inflate(layoutId, null);
AlertDialog myDialog = new AlertDialog.Builder(context).create();
//加上以下这句代码
myDialog .setView(((Activity) mContext).getLayoutInflater().inflate(layoutId, null))
myDialog .show();
myDialog .getWindow().setContentView(fourView);
}
对,效果神奇的出现了,哈哈( layoutId就是你的布局文件哦)