Как скрыть клавиатуру через приложение?

#android #keyboard #focus

#Android #клавиатура #фокус

Вопрос:

то, что я пытаюсь сделать, это скрыть клавиатуру и просто показать ее, когда какой-либо текст редактирования имеет фокус, другими словами, не показывать его, но я намерен реализовать его во всем приложении.

В одном действии я использую:

 InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
  

Есть ли способ реализовать такую вещь, но для всего приложения? Любая помощь или предложения были бы замечательными, спасибо

Ответ №1:

Обычная практика — создать абстрактный класс BaseActivity, в котором вы можете переопределить метод onCreate и вызвать этот код. Каждое действие, основанное на BaseActivity, будет вызывать метод toggleSoftInput.

Например:

 abstract public class BaseActivity extends AppCompatActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
        imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
    }
}
  

И все действия должны исходить из BaseActivity вместо AppCompatActivity, например:

 public class MainActivity extends BaseActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
}
  

Очень важно вызвать super.

Комментарии:

1. спасибо за ответ. не могли бы вы добавить немного больше?

2. Я добавил пример к ответу для лучшего понимания.

3. Спасибо. Я проверю это