#java #android
#java #Android
Вопрос:
Для ввода EditText установлено значение Phone, а для всего моего макета установлено значение focusable = true
в моей основной деятельности XML
<RelativeLayout
android:id="@ id/relSafePassage"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/gradient_background"
android:orientation="vertical"
android:clickable="true"
android:focusableInTouchMode="true"
android:onClick="hideKeyboard"
android:focusable="true">
<EditText
android:id="@ id/phoneNum"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:backgroundTint="#000000"
android:ems="9"
android:text=""
android:hint="@string/numHint"
android:inputType="phone"
android:numeric="decimal"
android:maxLength="9"
android:visibility="visible"
tools:ignore="Deprecated,TextFields" />
</RelativeLayout>
Но когда я нажимаю на свой экран, он заменяет цифровую клавиатуру программной клавиатурой, а не скрывает ее.
Это код Java, который я использовал, чтобы попытаться скрыть клавиатуру:
public void hideKeyboard(View view) {
InputMethodManager inputMethodManager =(InputMethodManager)getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS);
}
Ответ №1:
Попробуйте это:
public void hideKeyboard(View view) {
InputMethodManager imm = (InputMethodManager)this.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
Комментарии:
1. здравствуйте, я пробовал это, но, похоже, у меня та же проблема. не могли бы вы уточнить, где я мог бы найти представление в activity, чтобы заменить mView? Я все еще новичок в программировании
2. Я просто отредактировал свой ответ, чтобы включить также информацию о представлении. проверьте это.
3. И когда вы вызываете метод hideKeyboard, передайте свой textview в качестве параметра view .
4. спасибо, оказывается, то, что я предположил, что вы подразумевали под моим представлением, было правильным, ваш ответ был правильным, но проблема была в моем XML, который я изменил:
android:focusableInTouchMode="true" android:focusable="true"
с:android:focusable="false" tools:ignore="KeyboardInaccessibleWidget
5. если ответ вам каким-либо образом помог, было бы неплохо проголосовать или отметить правильный ответ 😉