第一种方法 没有管用 searchauto.setOnTouchListener(this);
public boolean onTouch(View v, MotionEvent event) {
searchauto = (AutoCompleteTextView)v ;
searchauto.setInputType(InputType.TYPE_NULL) ;
return false;
} 第二种 方法 监听焦点变化 得到焦点的时候显示软件盘 失去焦点的时候隐藏 没有管用
searchauto.setOnFocusChangeListener(new View.OnFocusChangeListener() { public void onFocusChange(View v, boolean hasFocus) {
imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
//searchauto.setFocusable(true);
if(searchauto.requestFocus()){
//searchauto.setInputType(InputType.TYPE_NULL);
imm.showSoftInputFromInputMethod(searchauto.getWindowToken(), 0);
}
else{
imm.hideSoftInputFromWindow(searchauto.getWindowToken(), 0);
}
}
});
第三个 是 设置当焦点在编辑框上的时候 点击回车键 显示软件盘 没有 管用
searchauto.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_ENTER){
imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
imm.showSoftInputFromInputMethod(searchauto.getWindowToken(), 0);
return true;
}
return false;
}
});
public boolean onTouch(View v, MotionEvent event) {
searchauto = (AutoCompleteTextView)v ;
searchauto.setInputType(InputType.TYPE_NULL) ;
return false;
} 第二种 方法 监听焦点变化 得到焦点的时候显示软件盘 失去焦点的时候隐藏 没有管用
searchauto.setOnFocusChangeListener(new View.OnFocusChangeListener() { public void onFocusChange(View v, boolean hasFocus) {
imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
//searchauto.setFocusable(true);
if(searchauto.requestFocus()){
//searchauto.setInputType(InputType.TYPE_NULL);
imm.showSoftInputFromInputMethod(searchauto.getWindowToken(), 0);
}
else{
imm.hideSoftInputFromWindow(searchauto.getWindowToken(), 0);
}
}
});
第三个 是 设置当焦点在编辑框上的时候 点击回车键 显示软件盘 没有 管用
searchauto.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_ENTER){
imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
imm.showSoftInputFromInputMethod(searchauto.getWindowToken(), 0);
return true;
}
return false;
}
});
解决方案 »
- android 点击对话框以外的区域 对话框关闭
- 如何在类似QQ好友界面,ViewPaper滑动窗口下面的一个View 使用ListView用来添加内容?????
- 想通过Android远程控制PC,手机上的操作如何传递给PC呢
- 针对同一个程序,eclipse里,启动模拟器时,可以设置分辨率,来看不同分辨率下,程序运行的效果,如果只是通过命令行,
- android和window phone 7
- Android Camera 如何实现连拍
- android webView 如何实现左右滑屏返回上一页?页不用通过手机返回键。
- android下 怎么统计SD卡里文件信息
- 新人求助!!eclipse Android怎么改DDMS中端口设置
- Android 6.0权限问题,申请权限成功后不回调onRequestPermissionsResult
- 计数器显示
- 请教个设置壁纸问题
该属性可选的值有两部分,一部分为软键盘的状态控制,另一部分是活动主窗口的调整。请自行查阅android文档。
if(hasFocus)
另外,点输入框系统是默认会显示软键盘,系统有改过?
public void onFocusChange(View v, boolean hasFocus) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (hasFocus) {
imm.showSoftInputFromInputMethod(searchauto.getWindowToken() , 0);
} else {
try {
imm.hideSoftInputFromWindow(searchauto.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
} catch (Exception e) {
System.out.println(" null!!!!!");
}
}
}
});
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
et.clearFocus();
button.requestFocus();
}
});
问题: 我使用EditText 这样 写监听,当焦点 移动到 别的按钮上以后 再回来点击 回车键,软键盘就会显示,可是当我 换成 AutoCompleteTextView 以后,焦点移动到 别的view 上,再回来 点击回车键 软键盘 怎么都不会显示! 还有就是 当使用 EditText 的时候 为什么 只写 第一段代码的监听,不给 Button 监听 当 EditText 获得 焦点的时候 点击回车键还是不会显示软件盘 ???