Подавить клавиатуру от всплывающих - PullRequest
0 голосов
/ 15 сентября 2018

Я хочу, чтобы клавиатура не появлялась в моем приложении для 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 голосов
/ 16 сентября 2018

Если вы хотите закрыть клавиатуру, когда пользователи открывают 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();
}
0 голосов
/ 16 сентября 2018

Если вы не хотите, чтобы клавиатура показывала, когда ваше действие получает фокус, вы можете добавить атрибуты в манифест:

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

Управляет взаимодействием главного окна действия с окном, содержащим экранную экранную клавиатуру. Настройка этого атрибута влияет на состояние программной клавиатуры - скрытой или видимой - когда действие становится центром внимания пользователя. В зависимости от ваших требований вы можете использовать один из следующих атрибутов:

  1. " stateHidden " Программная клавиатура скрыта, когда пользователь выбирает действие, то есть когда пользователь утвердительно перемещается вперед к действию, а не назад в него из-за выхода из другого действия.
  2. " stateAlwaysHidden " Программная клавиатура всегда скрыта, когда основное окно действия имеет фокус ввода.

Если вы хотите сделать это программно, тогда вы можете использовать свой метод в onCreate

0 голосов
/ 16 сентября 2018

Чтобы избежать появления всплывающей клавиатуры, добавьте это к вашему onCreate() методу:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...