EditText에 대한 자동 제안을 끄시겠습니까? 자동 제안 목록을 프로그래밍 방식으로 끄는 방법이

EditText에 입력 할 때 나타나는 자동 제안 목록을 프로그래밍 방식으로 끄는 방법이 있습니까?



답변

같은 질문이 있었지만 여전히 XML 파일에이 옵션을 설정하고 싶었 기 때문에 직접 알아낼 때까지 조금 더 조사했습니다.

이 줄을 EditText에 추가하십시오.

android:inputType="textFilter" 

여기에 팁이 있습니다. “Enter”키를 사용하려면이 줄을 사용하십시오.

android:inputType="textFilter|textMultiLine"

답변

android:inputType="textNoSuggestions"  

또한 당신은 이것을 읽는 것이 좋습니다


답변

android:inputType="textVisiblePassword" 

매력처럼 작동


답변

방법 :

  1. 프로그래밍 방식
editText.inputType = InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
  1. XML
android:inputType="textNoSuggestions"

이미 일부 플래그가 설정되어 있으면 다음을 수행하십시오.

  1. 프로그래밍 방식
inputType = if (disableSuggestions) {
  InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS or inputType
} else {
  inputType and InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS.inv()
}
  1. XML
android:inputType="textNoSuggestions|textPassword"

답변

자동 완성을 제거하는 가장 신뢰할 수있는 방법은

InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD 

EditText 컨트롤에서. 찰리가이 페이지에서 다른 답변을보고했듯이

android:inputType="textVisiblePassword"

이 플래그의 XML 버전입니다.

이 플래그를 다음과 결합 할 수 있습니다.

InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS

대부분의 휴대폰에서 작동하는 InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD없이 InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS를 사용했지만 자동 완성 기능이있는 삼성 휴대폰을 발견했습니다.

Android는 에뮬레이터에서 EditText에 대한 자동 완성 / 자동 제안을 프로그래밍 방식으로 비활성화합니다.

InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD 사용을 제안했습니다.

나는 이것을 (InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS와 함께) 시도했고 작동했습니다. 자동 완성을 원하지 않는다는 힌트를받지 못하는 휴대폰에서도 암호 필드에 대해 비활성화를 허용 해야하는 이유를 알 수 있습니다. 숨을 참을 수없는 상황에서 이러한 전화기에서 원하는 것을 얻을 수있는 가장 좋은 방법 일 수 있습니다.

내 장치 중 일부에서는이 플래그에 의해 글꼴이 약간 변경되었습니다. 가장 눈에 띄는 것은 영 (0)과 오 (O)를 더 명확하게 구별하기 위해 암호를 표시하는 데 중요합니다. 그러나 적어도 효과가 있었고 새 글꼴은 매력적이지 않았습니다.

이 제안을 찾은 게시물은 오래되었지만 테스트 한 휴대폰은 Sprint의 Samsung Galaxy Note II (SPH-L900) 재고 Android 4.1.2입니다. 선택한 키보드는 “삼성 키보드”였으며 고객이 Sprint에서 받았을 때이 휴대 전화의 기본값이었던 것 같습니다. 따라서이 문제는 삼성의 중요한 휴대폰 제품군 중 적어도 몇 년 동안 지속되어 왔습니다.

저처럼 삼성 테스트 장치가없는 분들에게는 중요한 정보가 될 수 있습니다.


답변

안드로이드 버전 8.0 이상에서는이 코드가 작동하지 않고 자동 완성 textview의 경우도이 코드가 작동하지 않으므로 8.0 이상에서 자동 제안 사용 안함에 대해 아래 코드를 사용하는 것이 좋습니다. android vesrion은 edittext android 의이 속성을 사용합니다 . ImportantForAutofill = “no”

                   <EditText
                            android:id="@+id/name"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:enabled="false"
                            android:focusable="false"
                            android:imeOptions="actionDone"
                            android:maxLength="80"
                            android:maxLines="1"
                            android:textColor="@color/colorBlack"
                            android:textColorHint="@color/colorBlack"
                            android:importantForAutofill="no"
                            android:textSize="@dimen/_12sdp"
                            app:bFontsEdt="light" />

이와 같은 AutoComplete textview의 경우이 필드를 사용하여 자동 제안 비활성화 android : importantForAutofill = “no” :

      <AutoCompleteTextView
                        android:id="@+id/autocompleteEditTextView"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="@dimen/_3sdp"
                        android:layout_marginTop="@dimen/_5sdp"
                        android:background="@null"
                        android:imeOptions="actionDone"
                        android:singleLine="true"
                        android:text=""
                        android:textColor="@color/colorBlack"
                        android:textColorHint="@color/colorGrayDark"
                        android:importantForAutofill="no"
                        android:textSize="@dimen/_12sdp" />

답변

다음을 사용하여이 문제를 해결할 수 있습니다.

android:importantForAutofill="no" 

Android O에는 필드에 대한 자동 채우기를 지원하는 기능이 있습니다. xml에서만이 기능을 사용하면 자동 채우기 힌트가 비활성화됩니다.