禁止弹出键盘

时间:2018-09-15 20:23:46

标签: android android-softkeyboard

我想阻止键盘在我的Android应用程序中弹出。我希望添加此代码

public void hideSoftKeyboard() {
    if (getCurrentFocus() != null) {
        InputMethodManager inputMethodManager = (InputMethodManager) 
        getSystemService(INPUT_METHOD_SERVICE);

        inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 
        0);
    }
}

但是我不确定要在MainActivity.java文件中插入

public class MainActivity extends AppCompatActivity {
    Button button;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = (Button) findViewById(R.id.MyButton);

        button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {

                Intent myIntent = new Intent(MainActivity.this,
                        Main2Activity.class);
                startActivity(myIntent);
            }
        });
    }
}

3 个答案:

答案 0 :(得分:0)

为避免弹出键盘,请将其添加到您的onCreate()方法中:

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

答案 1 :(得分:0)

如果要在用户打开MainActivity时关闭键盘,则应在onStart方法中使用此代码。

@Override
protected void onStart() {
    super.onStart();
    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN)
}

在某些情况下,为了防止MainActivity从后台变到前景时弹出键盘,那么您应该在onStop方法中使用您的方法。

@Override
protected void onStop() {
    super.onStop();
    hideSoftKeyboard();
}

答案 2 :(得分:0)

如果您不希望活动集中时显示键盘,则可以在清单中添加属性:

<activity android:windowSoftInputMode="stateAlwaysHidden" . . . >

这可操纵活动的主窗口与包含屏幕软键盘的窗口如何交互。当活动成为用户关注的焦点时,此属性的设置会影响软键盘的状态(无论是隐藏的还是可见的)。 您可以根据需要使用以下属性之一:

  1. stateHidden ”当用户选择活动时,即当用户肯定地向前导航到该活动而不是由于离开另一个活动而返回到该活动时,该软键盘被隐藏。 / li>
  2. stateAlwaysHidden ”当活动的主窗口具有输入焦点时,软键盘始终处于隐藏状态。

如果要以编程方式进行操作,则可以在onCreate中使用您的方法