自定义Dialog中加EditText弹不出键盘跟Dialog遮挡键盘的问题
2016-03-13 21:20
477 查看
//////////////////2016/03/13/////////////////////
/////////////////by xbw////////////////////////////
////////////////环境 eclipse////////////////////
先上两张图
第一张问题很明显,第二张是成功的图,
其实第一张是加了
这段代码,自动弹出来的,结构被遮挡了,查了一番资料也没解决,一群里哥们提示了一句代码,结果成功了,爽,
就是这么神奇,
下面把我整个showdialog方法贴出来吧;
中间还使用了对edittext的监听,来判断输入的字的个数,防止输入超限,,,,
这个监听呢,edit这还出来不少问题,
edit = (EditText) layout.findViewById(R.id.edit_caonimalebi);玩玩没想到忽略了layout,导致程序总是崩溃,唉,粗心了,
这个edittext的监听也贴出来
TextWatcher myWatcher = new TextWatcher(){
@Override
public void afterTextChanged(Editable s) {
// TODO 自动生成的方法存根
charnum_tx.setText("您还可以输入"+(charnum - edit.getText().length())+" \\ "+charnum);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO 自动生成的方法存根
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO 自动生成的方法存根
}
};
,唉收工,累死了,谢谢好人。
/////////////////by xbw////////////////////////////
////////////////环境 eclipse////////////////////
先上两张图
第一张问题很明显,第二张是成功的图,
其实第一张是加了
//getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); // InputMethodManager imm = (InputMethodManager) // getSystemService(INPUT_METHOD_SERVICE); // imm.showSoftInput(layout, 0); //显示软键盘 // imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); //显示软键盘
这段代码,自动弹出来的,结构被遮挡了,查了一番资料也没解决,一群里哥们提示了一句代码,结果成功了,爽,
dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM); dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE | WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
就是这么神奇,
下面把我整个showdialog方法贴出来吧;
public void showLogoutDialog(final int charnum,final String title) { LayoutInflater layoutInflater =LayoutInflater.from(this); RelativeLayout layout = (RelativeLayout)layoutInflater.inflate(R.layout.change_mes_dialog, null ); final Dialog dialog = new AlertDialog.Builder(MimeDetailActivity.this).create(); dialog.show(); dialog.getWindow().setContentView(layout); dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM); dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE | WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); //getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); // InputMethodManager imm = (InputMethodManager) // getSystemService(INPUT_METHOD_SERVICE); // imm.showSoftInput(layout, 0); //显示软键盘 // imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); //显示软键盘 TextView tex=(TextView)layout.findViewById(R.id.dialog_text); TextView tex1=(TextView)layout.findViewById(R.id.textView_title); tex.setMovementMethod(ScrollingMovementMethod.getInstance()); tex1.setText("修改提示"); tex.setText(title); edit = (EditText) layout.findViewById(R.id.edit_caonimalebi); edit.addTextChangedListener(myWatcher); //监听edittext charnum_tx=(TextView)layout.findViewById(R.id.charnum_tx); //确定按钮 Button btnOK = (Button) layout.findViewById(R.id.dialog_ok); btnOK.setText("更新"); btnOK.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if(edit.getText().length()>charnum){ Toast.makeText(MimeDetailActivity.this, "字数超限", Toast.LENGTH_SHORT).show(); }else{ new Up().execute(); //dialog.dismiss(); } } }); //btnOK.setClickable(btn); //关闭按钮 ImageButton btnClose = (ImageButton) layout.findViewById(R.id.dialog_close); btnClose.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); } }); }
中间还使用了对edittext的监听,来判断输入的字的个数,防止输入超限,,,,
这个监听呢,edit这还出来不少问题,
edit = (EditText) layout.findViewById(R.id.edit_caonimalebi);玩玩没想到忽略了layout,导致程序总是崩溃,唉,粗心了,
这个edittext的监听也贴出来
TextWatcher myWatcher = new TextWatcher(){
@Override
public void afterTextChanged(Editable s) {
// TODO 自动生成的方法存根
charnum_tx.setText("您还可以输入"+(charnum - edit.getText().length())+" \\ "+charnum);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO 自动生成的方法存根
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO 自动生成的方法存根
}
};
,唉收工,累死了,谢谢好人。
相关文章推荐
- CodeForces 630Q:Pyramids【几何】
- 分别写出BOOL,int,float,指针类型的 变量a与零相比的语句
- 【机房重构】视图
- 自定义主题
- android studio 开发环境搭建及常见问题解决方法
- 区域生长算法原理及MATLAB实现
- 还是决定在这里留下自己的足迹
- iOS开发UI篇—核心动画(关键帧动画)
- 使用病毒库检查手机中已经安装的程序
- JMS实例
- <!DOCTYPE>标签的定义与用法
- 算法训练 最大的算式
- Connect中间件示例
- 测试思考
- 判断是否为平衡二叉树--递归法
- 这段代码在32位计算机上的执行结果是什么?
- HTTP请求和数据安全
- HDU 2187
- 关系模型之关系代数
- mapreduce的shuffle阶段详解