有没有办法永久隐藏软键盘,但继续为EditText启用焦点?

时间:2013-09-27 08:31:39

标签: android android-edittext android-softkeyboard

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

4 个答案:

答案 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);
}