#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. Спасибо. Я проверю это