ฉันจะเพิ่มข้อความตัวยึดตำแหน่งEditText
ในคลาสที่ไม่ได้อยู่ใน XML ได้อย่างไร
ฉันมีEditText
รหัสต่อไปนี้ซึ่งจะแสดงใน alertdialog:
final EditText name = new EditText(this);
ฉันจะเพิ่มข้อความตัวยึดตำแหน่งEditText
ในคลาสที่ไม่ได้อยู่ใน XML ได้อย่างไร
ฉันมีEditText
รหัสต่อไปนี้ซึ่งจะแสดงใน alertdialog:
final EditText name = new EditText(this);
คำตอบ:
อาโอเค. setHint(int)
สิ่งที่คุณกำลังมองหาอยู่ เพียงส่งรหัสทรัพยากรของสตริงจาก xml ของคุณและคุณก็พร้อมที่จะไป
และใน XML มันเป็นเพียง android:hint="someText"
android:hint="text"
ให้ข้อมูลสำหรับผู้ใช้ว่าสิ่งที่เขาต้องการโดยเฉพาะอย่างยิ่ง editText
ตัวอย่าง: - ฉันมีสอง edittext หนึ่งสำหรับค่าตัวเลขและอื่น ๆ สำหรับค่าสตริง เราสามารถกำหนดคำใบ้ให้กับผู้ใช้เพื่อให้เขาเข้าใจว่าเขาต้องให้คุณค่าอะไรบ้าง
android:hint="Please enter phone number"
android:hint="Enter name"
หลังจากเรียกใช้แอพ edittext ทั้งสองนี้จะแสดงคำใบ้ที่ป้อนหลังจากคลิกที่แก้ไขข้อความมันจะไปและผู้ใช้สามารถป้อนสิ่งที่เขาต้องการ (ดูภาพโหมดความหรูหรา)
ในกิจกรรมของคุณ
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:background="@null"
android:hint="Text Example"
android:padding="5dp"
android:singleLine="true"
android:id="@+id/name"
android:textColor="@color/magenta"/>
วิธีนี้จะสร้างรหัสผ่านสำหรับการป้อนข้อมูลที่มีคำใบ้ที่ไม่ได้แปลงเป็น * !!
ใน XML:
android:inputType="textPassword"
android:gravity="center"
android:ellipsize="start"
android:hint="Input Password !."
ขอบคุณ: มะม่วงและ rjrjr สำหรับความเข้าใจด้าน: D
ใน Android Studio คุณสามารถเพิ่มคำแนะนำ (ตัวยึดสถานที่) ผ่าน GUI ก่อนอื่นเลือกฟิลด์ EditText ในมุมมองออกแบบ จากนั้นคลิกที่ทรีคอมโพเนนต์ด้านซ้ายของ IDE (โดยปกติจะอยู่ที่นั่น แต่อาจถูกย่อให้เล็กสุด) คุณจะเห็นคุณสมบัติของ EditText ที่เลือก ค้นหาฟิลด์คำแนะนำดังภาพด้านล่าง
คุณสามารถเพิ่มคำแนะนำ (ตัวยึดตำแหน่ง) ใน EditText ได้
หากคุณหมายถึงสถานที่ที่คุณจะเพิ่มเข้าไปในเค้าโครง คุณสามารถกำหนดคอนเทนเนอร์เช่น FrameLayout และเพิ่ม EditText นี้เมื่อสร้าง
<LinearLayout xmlns=".."/>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
FrameLayout layout = (FrameLayout) findViewById(R.id.container);
layout.addView(name);
คุณต้องใช้คุณสมบัติ android: hint
<EditText
android:id="@+id/message"
android:hint="<<Your placeholder>>"
/>
ใน Android Studio คุณสามารถสลับจาก XML -> Design View และคลิกส่วนประกอบในโครงร่างฟิลด์ EditText ในกรณีนี้ สิ่งนี้จะแสดงคุณสมบัติทั้งหมดที่ใช้งานได้สำหรับองค์ประกอบ GUI นั้น มันจะมีประโยชน์เมื่อคุณไม่รู้เกี่ยวกับคุณลักษณะทั้งหมดที่มี
คุณจะประหลาดใจเมื่อเห็นว่า EditText มีแอตทริบิวต์มากกว่า 140 รายการสำหรับปรับแต่ง
หากคุณต้องการแทรกข้อความในมุมมอง EditText ที่อยู่ที่นั่นหลังจากเลือกฟิลด์ (ไม่เหมือนกับการทำงานของคำใบ้) ให้ทำดังนี้
ใน Java:
// Cast Your EditText as a TextView
((TextView) findViewById(R.id.email)).setText("your Text")
ใน Kotlin:
// Cast your EditText into a TextView
// Like this
(findViewById(R.id.email) as TextView).text = "Your Text"
// Or simply like this
findViewById<TextView>(R.id.email).text = "Your Text"