在我的 android 应用程序中,我的一项活动中有 3 个 EditTexts。我在活动中创建了自己的数字键盘。每当我点击任何 EditText 时,都会出现软键盘。我想为此活动永久阻止它,但如果用户点击 EditText,那么它应该成为焦点。就像光标在闪烁。知道我该怎么做吗?提前致谢。
问问题
1812 次
4 回答
6
在此处手动隐藏键盘
InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
YourEditText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
mgr.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
});
YourEditText.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mgr.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
});
于 2013-09-27T09:21:49.567 回答
0
我检查我自己。它的工作正常。输入方法管理器 imm ;
edittext1 = (EditText) findViewById(R.id.editText1);
imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
edittext1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
imm.hideSoftInputFromWindow(edittext1.getWindowToken(), 0);
}
});
于 2013-09-27T09:53:17.517 回答
0
代替将 hideSoftInputFromWindow() 设置为每个 EditText,最好为活动的父布局设置参数。假设activity的父布局是一个LinearLayout,那么,
linearLayout = (LinearLayout) findViewById(R.id.linearLayout);
/* Hide keyboard from this activity permanently */
InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
manager.hideSoftInputFromWindow(linearLayout.getWindowToken(),0);
或者你也可以为 xml 实现同样的东西
<EditText
android:focusable="false"
.../>
这将永久禁用该编辑文本的键盘
于 2016-05-26T04:28:29.867 回答
0
Android Studio 建议使用以下命令来阻止键盘显示。我继续将其放入如下函数中,并为每个 EditText 对象调用它。
private void hideKeyboard(EditText editText){
editText.setShowSoftInputOnFocus(false);
}
于 2017-12-05T05:24:58.813 回答