Android menambahkan teks placeholder ke EditText

365

Bagaimana saya bisa menambahkan teks placeholder ke EditTextdalam kelas yang tidak ada dalam XML?

Saya memiliki yang berikut EditTextdalam kode saya yang akan ditampilkan di alertdialog:

    final EditText name = new EditText(this);
Mona
sumber
1
Apa yang Anda maksud dengan placeholder?
LuxuryMode
4
Teks yang ditulis dengan warna terang pada bilah teks dan ketika pengguna mengklik bilah teks untuk menulis sesuatu, teks tersebut akan hilang.
Mona

Jawaban:

832

Ah, baiklah. Yang Anda cari adalah setHint(int). Cukup kirimkan id sumber daya dari xml Anda dan Anda siap melakukannya.

masukkan deskripsi gambar di sini

EDIT

Dan dalam XML, itu sederhana android:hint="someText"

LuxuryMode
sumber
6
Terima kasih! Saya tidak tahu apa sebutannya di android, saya hanya tahu bahwa di iOS itu disebut placeholder.
Mona
39
Secara universal dikenal sebagai placeholder, tetapi tentu saja android berbeda hanya untuk menjadi berbeda;)
Joe Maher
21

android:hint="text" memberikan info kepada pengguna bahwa apa yang perlu dia isi secara khusus editText

misalnya: - saya punya dua edittext satu untuk nilai numerik dan lainnya untuk nilai string. kita dapat menetapkan petunjuk untuk pengguna sehingga dia dapat memahami bahwa nilai apa yang dia perlu berikan

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

setelah menjalankan aplikasi, kedua edittext ini akan menampilkan petunjuk yang dimasukkan, setelah mengklik edit teks, pengguna dapat memasukkan apa yang diinginkannya (lihat gambar luxurymode)

Monty
sumber
Ini disebut petunjuk di android.
Monty
11

Dalam Aktivitas Anda

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

masukkan deskripsi gambar di sini

David Hackro
sumber
7

Ini cara membuat kata sandi input yang memiliki petunjuk yang tidak dikonversi ke * !!.

Pada XML:

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

terima kasih kepada: mangga dan rjrjr untuk wawasan: D.

Bhimbim
sumber
5

Di Android Studio Anda dapat menambahkan Petunjuk (Place holder) melalui GUI. Pertama pilih bidang EditText pada tampilan desainer. Kemudian Klik pada Komponen Pohon sisi kiri IDE (Biasanya ada di sana, tetapi mungkin ada di sana diminimalkan) Di sana Anda dapat melihat Properties dari EditText yang dipilih. Temukan bidang Petunjuk seperti di bawah ini Gambar

masukkan deskripsi gambar di sini

Di sana Anda dapat menambahkan Petunjuk (Tempat penampung) ke EditText

Menuka Ishan
sumber
3

Jika Anda maksud lokasi di mana Anda akan menambahkannya di tata letak. Anda dapat mendefinisikan wadah seperti FrameLayout dan menambahkan EditText ini ke dalamnya ketika itu dibuat.

<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);
Rajdeep Dua
sumber
1

Anda harus menggunakan atribut android: hint

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

Di Android Studio, Anda dapat beralih dari XML -> Tampilan Desain dan klik pada Komponen dalam tata letak, bidang EditText dalam kasus ini. Ini akan menunjukkan semua atribut yang berlaku untuk komponen GUI itu. Ini akan berguna ketika Anda tidak tahu tentang semua atribut yang ada di sana.

Anda akan terkejut melihat bahwa EditText memiliki lebih dari 140 atribut untuk penyesuaian.

Pengembang Alagu
sumber
0

Jika Anda ingin menyisipkan teks di dalam tampilan EditText Anda yang tetap di sana setelah bidang dipilih (tidak seperti bagaimana petunjuk berperilaku), lakukan ini:

Di Jawa:

// Cast Your EditText as a TextView
((TextView) findViewById(R.id.email)).setText("your Text")

Di 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"
Elang Merah
sumber