如何在EditText
视图中停用软件键盘并同时显示cursor
?
我尝试了stackoverflow上的所有示例并得到两种情况:
1。键盘被隐藏,光标被隐藏
2。键盘正在显示,光标正在显示
但我需要键盘隐藏和光标显示。怎么做?
我接下来会这样做:
dialText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(dialText.getWindowToken(), 0);
}
});
dialText.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(dialText.getWindowToken(), 0);
return false;
}
});
键盘仍未隐藏,当我移动光标时,键盘再次出现。
此问题仅适用于Android 4.0版+。
答案 0 :(得分:3)
在活动代码中的清单文件中使用此功能:
<activity
android:name=".ExampleActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar"
android:windowSoftInputMode="stateHidden">
</activity>
答案 1 :(得分:1)
在焦点事件中做这件事。你有针对EditText的焦点事件实现并检查hasFocus对象是否则显示键盘和光标否则隐藏它
答案 2 :(得分:1)
实施FocusListener
并使用InputMethodManager
班级hideSoftInputFromInputMethod
隐藏键盘。
答案 3 :(得分:1)
View.OnTouchListener onTouchListener = new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
v.requestFocus();
return true;
}
};
dialText.setOnTouchListener(onTouchListener);
的AndroidManifest.xml:
<activity
...
android:windowSoftInputMode="stateAlwaysHidden"
...
</activity>