Android เพิ่มข้อความตัวยึดตำแหน่งไปที่ EditText


365

ฉันจะเพิ่มข้อความตัวยึดตำแหน่งEditTextในคลาสที่ไม่ได้อยู่ใน XML ได้อย่างไร

ฉันมีEditTextรหัสต่อไปนี้ซึ่งจะแสดงใน alertdialog:

    final EditText name = new EditText(this);

1
ตัวยึดตำแหน่งหมายความว่าอย่างไร
LuxuryMode

4
เป็นข้อความที่เขียนด้วยสีอ่อนบนแถบข้อความและเมื่อผู้ใช้คลิกบนแถบข้อความเพื่อเขียนสิ่งที่ข้อความจะหายไป
Mona

คำตอบ:


831

อาโอเค. setHint(int)สิ่งที่คุณกำลังมองหาอยู่ เพียงส่งรหัสทรัพยากรของสตริงจาก xml ของคุณและคุณก็พร้อมที่จะไป

ป้อนคำอธิบายรูปภาพที่นี่

แก้ไข

และใน XML มันเป็นเพียง android:hint="someText"


6
ขอบคุณ! ฉันไม่รู้ว่าพวกเขาเรียกมันว่าอะไรใน Android ฉันเพิ่งรู้ว่าใน iOS มันเรียกว่าตัวยึดตำแหน่ง
Mona

39
ใช้ในระดับสากลที่รู้จักกันเป็นตัวยึด แต่แน่นอนหุ่นยนต์จะแตกต่างกันเพียงเพื่อจะแตกต่างกัน;)
โจเฮอร์

21

android:hint="text" ให้ข้อมูลสำหรับผู้ใช้ว่าสิ่งที่เขาต้องการโดยเฉพาะอย่างยิ่ง editText

ตัวอย่าง: - ฉันมีสอง edittext หนึ่งสำหรับค่าตัวเลขและอื่น ๆ สำหรับค่าสตริง เราสามารถกำหนดคำใบ้ให้กับผู้ใช้เพื่อให้เขาเข้าใจว่าเขาต้องให้คุณค่าอะไรบ้าง

android:hint="Please enter phone number"
android:hint="Enter name" 

หลังจากเรียกใช้แอพ edittext ทั้งสองนี้จะแสดงคำใบ้ที่ป้อนหลังจากคลิกที่แก้ไขข้อความมันจะไปและผู้ใช้สามารถป้อนสิ่งที่เขาต้องการ (ดูภาพโหมดความหรูหรา)


สิ่งนี้เรียกว่าคำใบ้ใน Android
Monty

11

ในกิจกรรมของคุณ

<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"/>

ป้อนคำอธิบายรูปภาพที่นี่


7

วิธีนี้จะสร้างรหัสผ่านสำหรับการป้อนข้อมูลที่มีคำใบ้ที่ไม่ได้แปลงเป็น * !!

ใน XML:

android:inputType="textPassword"
android:gravity="center"
android:ellipsize="start"
android:hint="Input Password !."

ขอบคุณ: มะม่วงและ rjrjr สำหรับความเข้าใจด้าน: D


5

ใน Android Studio คุณสามารถเพิ่มคำแนะนำ (ตัวยึดสถานที่) ผ่าน GUI ก่อนอื่นเลือกฟิลด์ EditText ในมุมมองออกแบบ จากนั้นคลิกที่ทรีคอมโพเนนต์ด้านซ้ายของ IDE (โดยปกติจะอยู่ที่นั่น แต่อาจถูกย่อให้เล็กสุด) คุณจะเห็นคุณสมบัติของ EditText ที่เลือก ค้นหาฟิลด์คำแนะนำดังภาพด้านล่าง

ป้อนคำอธิบายรูปภาพที่นี่

คุณสามารถเพิ่มคำแนะนำ (ตัวยึดตำแหน่ง) ใน EditText ได้


3

หากคุณหมายถึงสถานที่ที่คุณจะเพิ่มเข้าไปในเค้าโครง คุณสามารถกำหนดคอนเทนเนอร์เช่น 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);

1

คุณต้องใช้คุณสมบัติ android: hint

<EditText
android:id="@+id/message"
android:hint="<<Your placeholder>>"
/>

ใน Android Studio คุณสามารถสลับจาก XML -> Design View และคลิกส่วนประกอบในโครงร่างฟิลด์ EditText ในกรณีนี้ สิ่งนี้จะแสดงคุณสมบัติทั้งหมดที่ใช้งานได้สำหรับองค์ประกอบ GUI นั้น มันจะมีประโยชน์เมื่อคุณไม่รู้เกี่ยวกับคุณลักษณะทั้งหมดที่มี

คุณจะประหลาดใจเมื่อเห็นว่า EditText มีแอตทริบิวต์มากกว่า 140 รายการสำหรับปรับแต่ง


0

หากคุณต้องการแทรกข้อความในมุมมอง 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"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.