禁用,启用和触摸时不会出现软键盘

时间:2011-08-22 10:40:38

标签: android android-edittext android-softkeyboard

看一下这个例子:

public class TestEditSoftKbdActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    findViewById(R.id.editText1).setFocusable(false);
    findViewById(R.id.editText1).setClickable(false);
    findViewById(R.id.editText1).setEnabled(false);

    findViewById(R.id.editText1).setFocusable(true);
    findViewById(R.id.editText1).setClickable(true);
    findViewById(R.id.editText1).setEnabled(true);

    findViewById(R.id.editText1).invalidate();
    findViewById(R.id.editText1).requestLayout();
}

}

在这一系列调用之后,编辑文本视图在被触摸时将不再弹出其软输入法:(

有人可以解释这里出了什么问题吗?

1 个答案:

答案 0 :(得分:0)

如果要关闭文本视图的软键盘,请按this link。这是一个适合您的解决方案。但是你需要定义自己的TextView才能做到这一点。他建议使用;

public class NoImeEditText extends EditText {
    public EditTextEx(Context context, AttributeSet attrs) { 
       super(context, attrs);     
    }      
    @Override      
    public boolean onCheckIsTextEditor() {   
        return false;     
    }        
} 

希望它有效。