Android: Stop EditText from gaining focus at Activity startup


Android: Stop EditText from gaining focus at Activity startup
การเซ็ตค่าเพื่อไม่ให้ focus ไปจับที่ EditText ตอนเริ่มต้นของ Activity

อันนี้เป็นปัญหาการใช้ EditText ใน Activity นะครับ เช่นเราวาง EditText ไว้ด้านล่าง ส่วนด้านบนเป็นการแสดงข้อมูลด้วย TextView เมื่อเรารันโปรแกรมแล้ว ก็จะพบว่า focus จะไปจับที่ EditText ทำให้คีย์บอร์ดมันดันขึ้นมา และทำให้ข้อมูลด้านบนที่แสดงจาก TextView ไม่ถูกแสดงขึ้นมาก่อน ดังนั้นจึงต้องหาวิธีการทำให้ EditText ไม่ต้องถูก focus ตั้งแต่เริ่มแรกนั้นเอง

จากรูปด้านบนคือปัญหาของเรานั้นเอง เห็นมั้ยครับว่าเมื่อ EditText ที่อยู่ด้านล่างนั้นถูก focus แล้วทำให้ ข้อมูลด้านบนที่ควรแสดงก่อนนั้นถูกบังไป

วิธีแก้ไข เราต้องเข้าไปแก้ไขที่ xml ไฟล์ของหน้า Activity หน้านี้นะครับ (ง่ายสุด ส่วนอีกวิธีคือการเขียนโค้ดเอา) แก้ไขเพิ่มเติมดังนี้

<!-- Dummy item to prevent AutoCompleteTextView from receiving focus -->
<LinearLayout
android:focusable="true" android:focusableInTouchMode="true"
android:layout_width="0px" android:layout_height="0px"/>

<!-- :nextFocusUp and :nextFocusLeft have been set to the id of this component
to prevent the dummy from receiving focus again -->
<AutoCompleteTextView android:id="@+id/text"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:nextFocusUp="@+id/text" android:nextFocusLeft="@+id/text"/>

1) เซ็ตค่าของ layout ที่บรรจุ edittext

android:focusable="true" android:focusableInTouchMode="true"

2) เซ็ตค่าของ edittext โดย id ของ nextFocusUp และ nextFocusLeft จะเป็น id ของ edittext ตัวที่เราต้องการปิด focus นะครับ

android:nextFocusUp="@+id/text" android:nextFocusLeft="@+id/text"

เท่านี้ก้อเรียบร้อยแล้วครับ ลองรันโปรแกรมดู

จะเห็นว่าข้อมูลด้านบนก็จะแสดงตามปกติ เมื่อเปิดเข้ามาหน้า Activity นี้ คีย์บอร์ดก้อจะไม่โผล่เข้ามาอีกต่อไป

Reference

adaydesign :)

About adaydesign

นักพัฒนาแอพพลิเคชั่นบนโมบาย [iPhone Android] คนหนึ่งซึ่งอยากจะบันทึกเรื่องราวของเส้นทางนักพัฒนาโมบายแอพพลิเคชั่นเอาไว้ในบล็อคน้อยๆ แห่งนี้ เผื่อจะแบ่งบันและแลกเปลี่ยนความรู้ให้กับคนอื่นๆ ได้บ้าง :) Mobile Application Developer; Flash Mobile, iPhone/iPad, Android Mobile Phone/Tablet and Blackberry Playbook.

Posted on สิงหาคม 23, 2011, in [Dev] Android, [Link] Android and tagged , . Bookmark the permalink. ใส่ความเห็น.

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

%d bloggers like this: