Способ скрытия программной клавиатуры при условии неэффективности функций edittext в android

У меня есть скрытая программная клавиатура, потому что у меня есть пользовательская клавиатура в приложении. Когда щелкает edittext, мягкая клавиатура не должна всплывать. Итак, я пробовал так много способов из источников, но ничего не работало, кроме editText.setFocusable(false);. Но теперь проблема edittext не подсвечивается, когда я щелкнул ее, и даже курсор не отображается. Я попытался использовать InputManager, android:windowSoftInputMode="stateAlwaysHidden в манифесте и упомянул много таких, как ссылка 1, link 2 и т.д., но эти методы по крайней мере даже не скрывают мягкую клавиатуру в моем приложении. Наконец, я получил это через setFocusable, но есть проблема подсветки, а проблема с невидимым курсором и даже requestFocus() в onClickListener не работает. Может ли кто-нибудь дать точное решение этой проблемы? Приветствуется фрагмент кода.

Ответ 1

Попробуйте это в классе активности

getwindow().setsoftInputMode(winowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

Это предотвращает использование мягкой клавиатуры

Ответ 2

Попробуйте следующее:

InputMethodManager imm = (InputMethodManager)getSystemService( Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFomWindow( edittext.getWindowToken(), 0);

Ответ 3

используйте это в манифесте:

android:configChanges="orientation|keyboardHidden"         
android:windowSoftInputMode="stateHidden" 

Ответ 4

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

Хотите скрыть программную клавиатуру, используйте этот код в методе прослушивания кликов.

InputMethodManager imm = (InputMethodManager) getSystemService (Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFomWindow(edittext.getWindowToken(), 0);

Надеюсь, этот код будет работать нормально.

Ответ 5

как насчет того, если вы редактируетеText.setOnTouchListener и когда вы создаете новый OnTouchListener, ничего не делайте:

editText.setOnTouchListener(new OnTouchListener(){

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        return true;
    }

});