Pertanyaan Android EditText Petunjuk


Saya telah menetapkan petunjuk untuk EditText, saat ini visibilitas petunjuknya hilang. Ketika pengguna mulai mengetik, saya ingin menghapus teks petunjuk, ketika kursor terlihat di EditText, bukan pada saat pengguna mulai mengetik. Bagaimana saya bisa melakukannya?

<EditText 
android:paddingLeft="10dp"
android:background="@drawable/edittextbg"
android:layout_marginLeft="4dp"
android:layout_marginTop="7dp"
android:gravity="left"
android:id="@+id/Photo_Comments" 
android:layout_width="150dip" 
android:maxLines="1"
android:hint="Write Caption"
android:maxLength="50"
android:singleLine="true"
android:maxWidth="100dip"
android:layout_height="wrap_content"/>

39
2017-12-07 06:13


asal


Jawaban:


Saya tidak tahu apakah cara langsung melakukan ini tersedia atau tidak, tetapi Anda pasti ada solusi melalui kode: dengarkan acara onFocus dari EditText, dan begitu mendapat fokus, atur isyarat menjadi tidak ada apa-apa dengan sesuatu seperti itu editText.setHint(""):

Ini mungkin bukan persis apa yang harus Anda lakukan, tetapi mungkin sesuatu seperti ini-

myEditText.setOnFocusListener(new OnFocusListener(){
  public void onFocus(){
    myEditText.setHint("");
  }
});

29
2017-12-07 06:56



Anda dapat menggunakan konsep pemilih. onFocus menghilangkan isyarat itu.

android:hint="Email"

Jadi ketika TextView memiliki fokus, atau memiliki input pengguna (yaitu tidak kosong) petunjuk tidak akan ditampilkan.


53
2017-12-07 06:55



Untuk melengkapi jawaban Sunit, Anda dapat menggunakan pemilih, bukan ke string teks tetapi ke textColorHint. Anda harus menambahkan atribut ini di editText Anda:

android:textColorHint="@color/text_hint_selector"

Dan text_hint_selector Anda seharusnya:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:color="@android:color/transparent" />
    <item android:color="@color/hint_color" />
</selector>

17
2018-02-07 11:48



et.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {

            et.setHint(temp +" Characters");
        }
    });

1
2017-12-17 13:47