Saya memiliki Tampilan di mana terdapat dua kotak teks, dan pengguna dapat memilih warna teks dari tampilan lain pada layar yang sama (melalui kotak dialog).
Jadi ketika pengguna mengubah warna melalui kotak dialog, saya mengubah warna EditText
teks dan petunjuknya. Tetapi ketika ada beberapa teks yang tersedia EditText
setelah pengguna memilih warna lain, maka teks itu datang dengan warna itu. Tetapi jika saya menghapus semua teks itu maka warna HintText adalah warna sebelumnya.
Misalnya, saat ini jika saya memiliki warna merah di kotak teks dan pengguna memilih warna hijau maka teks ada dalam warna hijau. Tetapi jika saya menghapus teks itu maka teks petunjuk akan berwarna merah meskipun saya mengubah warna petunjuk dalam kode. Masalah ini hanya muncul jika ada beberapa teks di sana. jika kosong dan ada teks petunjuk maka masalah tidak datang.
sumber
Jawaban:
Gunakan ini untuk mengubah warna petunjuk. -
editText.setHintTextColor(getResources().getColor(R.color.white));
Solusi untuk masalah Anda -
editText.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence arg0, int arg1, int arg2,int arg3){ //do something } @Override public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { //do something } @Override public void afterTextChanged(Editable arg0) { if(arg0.toString().length() <= 0) //check if length is equal to zero tv.setHintTextColor(getResources().getColor(R.color.white)); } });
sumber
Cukup tambahkan ini di Anda
layout
untukEditText
:sumber
Warna Default:
android:textColorHint="@android:color/holo_blue_dark"
Untuk kode Warna:
android:textColorHint="#33b5e5"
sumber
Di Dalam File Layout Xml Kita Dapat Mengubah Warna Petunjuk .....
android:textColorHint="@android:color/*****"
Anda dapat mengganti * dengan warna atau kode warna.
sumber
Tampaknya EditText menerapkan hintTextColor hanya jika teksnya kosong. Jadi solusi sederhananya akan seperti ini
Editable text = mEditText.getText(); mEditText.setText(null); mEditText.setHintTextColor(color); mEditText.setText(text);
Jika Anda memiliki beberapa kolom, Anda dapat memperluas EditText dan menulis metode yang menjalankan logika ini dan sebagai gantinya menggunakan metode itu.
sumber
Secara terprogram di Java - Setidaknya API v14 +
exampleEditText.setHintTextColor(getResources().getColor(R.color.your_color));
sumber
setHintTextColor(color)
tidak berfungsi jika ada teks, BAHKAN jika itu""
.Ini seperti warna petunjuk default, berfungsi untuk saya:
editText.setHintTextColor(Color.GRAY);
sumber
Anda bisa menelepon
editText.invalidate()
setelah Anda mengatur ulang warna petunjuk. Itu bisa menyelesaikan masalah Anda. Sebenarnya SDK memperbarui warna dengan cara yang sama.sumber