4

在我的 android 应用程序中,我的一项活动中有 3 个 EditTexts。我在活动中创建了自己的数字键盘。每当我点击任何 EditText 时,都会出现软键盘。我想为此活动永久阻止它,但如果用户点击 EditText,那么它应该成为焦点。就像光标在闪烁。知道我该怎么做吗?提前致谢。

4

4 回答 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 回答