ฉันปิดการใช้งานซอฟต์คีย์แพดในแอปพลิเคชันของฉันเพราะฉันมีคีย์แพดแบบกำหนดเองของตัวเอง แต่ปัญหาคือเมื่อฉันคลิกที่ข้อความแก้ไขเพื่อป้อนข้อมูลผ่านแป้นพิมพ์ที่กำหนดเอง ข้อความแก้ไขนั้นไม่ได้รับการเน้นเลย แม้แต่เคอร์เซอร์ก็ไม่สามารถมองเห็นได้ภายในข้อความแก้ไขที่คลิกตามลำดับ เหตุใดจึงมีผลข้างเคียงอยู่เสมอขณะปิดใช้งานปุ่มกดแบบนุ่มนวล ฉันลองทำตามคำแนะนำทั้งหมดที่มีอยู่ในแหล่งที่มารวมถึง stackoverflow แล้ว แต่ก็ไม่มีอะไรทำงาน ฉันจะได้รับโซลูชันที่สมบูรณ์แบบในการเน้นข้อความแก้ไขเมื่อคลิกหรือไม่
มีการเน้นข้อความแก้ไขของฉันหรือไม่
คำตอบ (2)
คุณต้องโทร textView.requestFocus()
เมื่อคลิกด้วยวิธีนี้ editText
ของคุณจึงสามารถไฮไลต์
อย่าลืมเพิ่ม ไฟล์ XML แอตทริบิวต์นี้ android:focusableInTouchMode="true"
ไปยัง EditText
ของคุณด้วย
person
Tomer Mor
schedule
03.09.2012
ขอบคุณสำหรับการตอบกลับของคุณ แต่นี่ก็ไม่ได้ผลเช่นกัน ฉันได้สร้างข้อความแก้ไขแบบไดนามิก ดังนั้นเมื่อฉันเพิ่ม setFocusableInTouchMode(true) ซอฟต์คีย์แพดจะปรากฏขึ้น และเมื่อฉันเพิ่ม requestFocus ก็ไม่มีอะไรแตกต่างเช่นกัน
- person Kanth; 04.09.2012
ฉันไม่รู้ว่าทำไมผลข้างเคียงเหล่านั้นจึงเกิดขึ้น แต่ในโพสต์นี้ มีวิธีแก้ไขวิธีปิดการใช้งานแป้นพิมพ์และยังมีเคอร์เซอร์อยู่ นั่นได้ผลสำหรับฉัน ยกเว้นว่าฉันจำเป็นต้องขอสมาธิด้วย ดังนั้น:
//disable keypad
et.setOnTouchListener(new OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
int inType = et.getInputType(); // backup the input type
et.setInputType(InputType.TYPE_NULL); // disable soft input
et.onTouchEvent(event); // call native handler
et.setInputType(inType); // restore input type
et.requestFocus(); // request focus
return true; // consume touch even
}
});
person
Georg
schedule
03.09.2012
ขอบคุณที่สละเวลา. แต่มันก็ไม่ได้ผลเช่นกันในกรณีของฉัน จริงๆ แล้วมีคำถามมากมายที่ยังไม่มีคำตอบ หรือคำตอบสำหรับบางคำถามก็คลุมเครือ เช่น softkeypad ไฟล์ R.java หายไป เป็นต้น
- person Kanth; 04.09.2012
อะไรที่ไม่ได้ผล? แป้นพิมพ์ปรากฏขึ้นหรือคุณไม่มีเคอร์เซอร์?
- person Georg; 04.09.2012