您的位置:首页 > 其它

Dialog里面弹不出软键盘 软键盘不出现

2016-06-15 10:54 288 查看
自定义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就是你的布局文件哦)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息