มีวิธีปิดรายการแนะนำอัตโนมัติโดยใช้โปรแกรมซึ่งจะปรากฏขึ้นเมื่อคุณพิมพ์ใน EditText หรือไม่
มีวิธีปิดรายการแนะนำอัตโนมัติโดยใช้โปรแกรมซึ่งจะปรากฏขึ้นเมื่อคุณพิมพ์ใน EditText หรือไม่
คำตอบ:
ฉันมีคำถามเดียวกัน แต่ฉันยังคงต้องการตั้งค่าตัวเลือกนี้ในไฟล์ XML ของฉันดังนั้นฉันจึงทำการค้นคว้าเพิ่มเติมอีกเล็กน้อยจนกว่าฉันจะค้นพบด้วยตัวเอง
เพิ่มบรรทัดนี้ใน EditText ของคุณ
android:inputType="textFilter"
นี่คือเคล็ดลับ ใช้บรรทัดนี้หากคุณต้องการใช้ปุ่ม "enter"
android:inputType="textFilter|textMultiLine"
android:inputType="textPersonName"
ด้วยข้อความที่แนะนำ แต่ยังคงแสดงแถวคำแนะนำ (พร้อมไอคอนไมโครโฟน)
android:inputType="textNoSuggestions"
คุณควรอ่านสิ่งนี้ด้วย
android:inputType="textVisiblePassword"
ใช้งานได้เหมือนมีเสน่ห์
.
เพิ่มท้ายคำหากพิมพ์สองช่องว่างหลังคำนั้น ฉันใช้มันสำหรับแถบการดำเนินการ searchView ((SearchView) MenuItemCompat.getActionView(searchItem)) .setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
วิธีทำ:
editText.inputType = InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
android:inputType="textNoSuggestions"
หากคุณตั้งค่าสถานะไว้แล้วให้ทำดังนี้
inputType = if (disableSuggestions) {
InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS or inputType
} else {
inputType and InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS.inv()
}
android:inputType="textNoSuggestions|textPassword"
วิธีที่น่าเชื่อถือที่สุดที่ฉันพบในการกำจัดการเติมข้อความอัตโนมัติคือการใช้
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
บนตัวควบคุม EditText ของคุณ ดังที่ชาร์ลีได้รายงานไว้ในคำตอบอื่นในหน้านี้
android:inputType="textVisiblePassword"
เป็นเวอร์ชัน XML ของแฟล็กนี้
คุณสามารถรวมธงนี้เข้ากับ
InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
ฉันใช้ InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS โดยไม่มี InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD ซึ่งใช้ได้กับโทรศัพท์ส่วนใหญ่ แต่แล้วฉันก็เจอโทรศัพท์ Samsung ซึ่งฉันยังคงได้รับการเติมข้อความอัตโนมัติ
ซึ่งแนะนำให้ใช้ InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
ฉันลองสิ่งนี้ (พร้อมกับ InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS) และใช้งานได้ คุณสามารถดูได้ว่าทำไมแม้แต่โทรศัพท์ที่ไม่อาจใช้คำใบ้ว่าคุณไม่ต้องการเติมข้อความอัตโนมัติก็ต้องยอมให้ปิดใช้งานช่องรหัสผ่าน การกลั้นหายใจไม่นานนี่อาจเป็นวิธีที่ดีที่สุดในการรับสิ่งที่เราต้องการจากโทรศัพท์รุ่นนี้
ในอุปกรณ์บางเครื่องของฉันแบบอักษรมีการเปลี่ยนแปลงเล็กน้อยโดยการตั้งค่าสถานะนี้ - เห็นได้ชัดที่สุดเพื่อแยกศูนย์ (0) จาก Oh (O) ให้ชัดเจนยิ่งขึ้นซึ่งเห็นได้ชัดว่ามีความสำคัญต่อการแสดงรหัสผ่าน แต่อย่างน้อยก็ใช้งานได้และฟอนต์ใหม่ก็ไม่ได้ขี้เหร่
แม้ว่าโพสต์ที่ฉันพบคำแนะนำนี้จะเก่า แต่โทรศัพท์ที่ฉันทดสอบนั้นล่าสุด - Samsung Galaxy Note II (SPH-L900) สต็อก Android 4.1.2 จาก Sprint แป้นพิมพ์ที่เลือกคือ "Samsung Keyboard" และเห็นได้ชัดว่านี่เป็นค่าเริ่มต้นสำหรับโทรศัพท์เครื่องนี้เมื่อลูกค้าได้รับจาก Sprint ดังนั้นจึงเห็นได้ชัดว่าปัญหานี้ยังคงมีอยู่ในช่วงหลายปีที่ผ่านมาเป็นเวลาหลายปีอย่างน้อยก็มีโทรศัพท์ Samsung ที่สำคัญบางรุ่น
สำหรับพวกคุณที่ไม่มีอุปกรณ์ทดสอบของ Samsung เช่นฉันนี่อาจเป็นข้อมูลสำคัญ
สำหรับ Android เวอร์ชัน 8.0 หรือสูงกว่ารหัสนี้ไม่ทำงานและสำหรับการเติมข้อความอัตโนมัติยังรหัสนี้ไม่ทำงานดังนั้นฉันขอแนะนำให้คุณใช้รหัสด้านล่างสำหรับปิดการใช้งานคำแนะนำอัตโนมัติใน 8.0 หรือสูงกว่า android vesrion ใช้คุณสมบัตินี้ของ edittext android: importantForAutofill = "ไม่"
<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" />
และสำหรับมุมมองข้อความการทำให้สมบูรณ์อัตโนมัติเช่นนี้ให้ใช้ฟิลด์นี้เพื่อปิดใช้งานคำแนะนำอัตโนมัติ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 ของคุณมันจะปิดใช้งานคำแนะนำการป้อนอัตโนมัติ
เนื่องจากยังคงเป็นปัญหาอยู่ฉันจะโพสต์คำตอบนี้ android: inputType = "textVisiblePassword" ใช้งานได้ แต่ไม่เป็นที่พึงปรารถนาประการแรกเนื่องจากเป็นการบิดเบือนความจริงของอินพุตและประการที่สองเนื่องจากปิดใช้งานการป้อนข้อมูลด้วยท่าทาง!
แต่ฉันต้องใช้แฟล็กทั้ง textNoSuggestions และ textFilter แทน อย่างใดอย่างหนึ่งเพียงอย่างเดียวไม่ได้ผล
android:inputType="textCapSentences|textFilter|textNoSuggestions"
textCapSentences เป็นเพราะเหตุผลอื่น แต่ inputType นี้ยังคงพิมพ์แบบปัดและปิดใช้งานแถบเครื่องมือคำแนะนำ
ฉันได้รับสิ่งนี้บนโทรศัพท์ samsung ที่ใช้ 4.4.4 สิ่งนี้ช่วยแก้ปัญหาของฉันได้
android:inputType="text|textVisiblePassword|textNoSuggestions"
ตกลงปัญหาคือ - ใน Eclipse คุณไม่ได้รับคำแนะนำสำหรับแฟล็กชื่อ: textNoSuggestion
และคุณไม่สามารถตั้งค่าใน main.xml (ที่คุณออกแบบ UI) เนื่องจากไม่รู้จักแอตทริบิวต์สำหรับ inputType ดังนั้นคุณสามารถตั้งค่าเป็นรหัสโดยใช้ int const:
EditText txtTypeIt = (EditText) this.findViewById(R.id.txtTypeIt);
txtTypeIt.setInputType(524288);
และขอบคุณjasta00 ที่ช่วยฉันหาคำตอบสำหรับเรื่องนี้
android:inputType="text|textNoSuggestions"
EditText emailTxt=(EditText)findViewById(R.id.email);
emailTxt.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
สิ่งนี้จะช่วยคุณได้
// 100% correct & tested
txtKey = (EditText) view.findViewById(R.id.txtKey);
txtKey.setPrivateImeOptions("nm");
txtKey.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
txtKey.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO);
}
คุณสามารถใช้setThreshold()
วิธีการของ EditText กำหนดเกณฑ์เป็น 100 เมื่อคุณไม่ต้องการแสดงการคาดคะเน หากคุณต้องการเปิดใช้งานการแสดงการคาดการณ์อีกครั้งให้ตั้งค่ากลับเป็น int ขนาดเล็กเช่น 1 หรือ 2 ขึ้นอยู่กับความต้องการของคุณ