Android隐藏键盘

时间:2017-01-26 04:50:36

标签: android

我正在开发具有外部键盘的android Tab。所以我需要删除我的应用程序上的Android软键盘弹出。我尝试了很多方法,但它对我来说都不适用,因为我的设备是Api-16。

EditText edtView=(EditText)findViewById(R.id.editTextConvertValue);
edtView.setInputType(0);

这段代码很有用,但没有显示光标。我试过这些,

getWindow().setSoftInputMode(
    WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN
);

<activity
    android:name=".MyActivity"
    android:windowSoftInputMode="stateAlwaysHidden"/>

对我来说没什么用。

还有其他办法吗?

隐藏Api 16设备上的Android softKeyboard pop

提前感谢!!

3 个答案:

答案 0 :(得分:2)

试试这个

edtView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if(hasFocus){
            edtView.postDelayed(new Runnable() {
                @Override
                public void run() {
                    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
                    imm.hideSoftInputFromWindow(edtView.getWindowToken(), 0);
                }
            },1);

        }
    }
});

答案 1 :(得分:1)

在您想要隐藏键盘时调用以下功能

public static void hideKeyboard(Context context, View mView) {
    InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(mView.getWindowToken(), 0);
}

答案 2 :(得分:0)

在使用edittext并想隐藏焦点/单击键盘时使用xml代码中的这些行。

android:clickable="true"
android:focusableInTouchMode="false"