在我的Android应用程序中,我的一个活动中有3个EditTexts。我在活动中创建了自己的数字键盘。每当我点击任何EditText时,都会出现软键盘。我想永久阻止这个活动,但如果用户点击EditText,那么它应该是焦点。就像一个光标闪烁。知道我该怎么办?提前谢谢。
答案 0 :(得分:5)
在这里手动隐藏键盘
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);
}
});
答案 1 :(得分:0)
我检查自己。它的工作正确。 InputMethodManager 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);
}
});
答案 2 :(得分:0)
代替为每个EditText设置hideSoftInputFromWindow(),如果为活动的父布局设置参数将会很好。假设活动的父布局是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"
... /&GT;
这会为该edittext
永久禁用键盘答案 3 :(得分:0)
Android工作室建议使用以下命令阻止键盘显示。我继续把它扔进一个函数,如下所示,并为每个EditText对象调用它。
private void hideKeyboard(EditText editText){
editText.setShowSoftInputOnFocus(false);
}