这个时候出现问题了,当我点击EditText的时候,可以用我的键盘写入数据,但是EditText没有光标。各种方法试过了,像editText.requseFocos()和editText.setCursorVisible(true).光标都没办法调出来。
有哪位好心,热心,真心的大哥大姐抽空给看看啊
5 个解决方案
#1
它可能是光标和系统键盘的输入绑定在一起了
editText.setInputType(InputType.TYPE_NULL) 这句也暗含着屏蔽了光标了吧?
示例代码有吗?不清楚你什么环境
editText.setInputType(InputType.TYPE_NULL) 这句也暗含着屏蔽了光标了吧?
示例代码有吗?不清楚你什么环境
#2
嗯 你试试这个可以不:android:editable="false"
#3
4.0上确实有这情况,我也在纠结这问题,不知楼主解决没有?
#4
不知道楼主解决了没有 我也遇到这问题了
#5
用这个方法关闭系统键盘就不会出现光标消失的问题了
// 隐藏系统键盘
public void hideSoftInputMethod(EditText ed){
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
int currentVersion = android.os.Build.VERSION.SDK_INT;
String methodName = null;
if(currentVersion >= 16){
// 4.2
methodName = "setShowSoftInputOnFocus";
}
else if(currentVersion >= 14){
// 4.0
methodName = "setSoftInputShownOnFocus";
}
if(methodName == null){
ed.setInputType(InputType.TYPE_NULL);
}
else{
Class<EditText> cls = EditText.class;
Method setShowSoftInputOnFocus;
try {
setShowSoftInputOnFocus = cls.getMethod(methodName, boolean.class);
setShowSoftInputOnFocus.setAccessible(true);
setShowSoftInputOnFocus.invoke(ed, false);
} catch (NoSuchMethodException e) {
ed.setInputType(InputType.TYPE_NULL);
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
#1
它可能是光标和系统键盘的输入绑定在一起了
editText.setInputType(InputType.TYPE_NULL) 这句也暗含着屏蔽了光标了吧?
示例代码有吗?不清楚你什么环境
editText.setInputType(InputType.TYPE_NULL) 这句也暗含着屏蔽了光标了吧?
示例代码有吗?不清楚你什么环境
#2
嗯 你试试这个可以不:android:editable="false"
#3
4.0上确实有这情况,我也在纠结这问题,不知楼主解决没有?
#4
不知道楼主解决了没有 我也遇到这问题了
#5
用这个方法关闭系统键盘就不会出现光标消失的问题了
// 隐藏系统键盘
public void hideSoftInputMethod(EditText ed){
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
int currentVersion = android.os.Build.VERSION.SDK_INT;
String methodName = null;
if(currentVersion >= 16){
// 4.2
methodName = "setShowSoftInputOnFocus";
}
else if(currentVersion >= 14){
// 4.0
methodName = "setSoftInputShownOnFocus";
}
if(methodName == null){
ed.setInputType(InputType.TYPE_NULL);
}
else{
Class<EditText> cls = EditText.class;
Method setShowSoftInputOnFocus;
try {
setShowSoftInputOnFocus = cls.getMethod(methodName, boolean.class);
setShowSoftInputOnFocus.setAccessible(true);
setShowSoftInputOnFocus.invoke(ed, false);
} catch (NoSuchMethodException e) {
ed.setInputType(InputType.TYPE_NULL);
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}