1

ヒント(「名前」)があり、下線にヒントの長さが表示されますが、入力を開始するときに下線が入力する長さに従わないヒントよりも短いです。私は下線の長さを変える方法があるのだろうかと思っていましたか?EditTextのアンダーラインのAndroidの長さ

enter image description here [enter image description here] [enter image description here] 3

答えて

1

このコードは、あなたが欲しいものを行う必要があります。私達は私達ののEditTextに焦点を当てたときに、私は、ハックを使用するので、

final EditText editText = (EditText) findViewById(R.id.edit_query); 
final CharSequence rememberHint = editText.getHint(); 
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
    @Override 
    public void onFocusChange(View view, boolean b) { 
     if (!b && TextUtils.isEmpty(editText.getText())) { 
      editText.setHint(rememberHint); 
     } else { 
      editText.setHint(""); 
     } 
    } 
}); 

、またはそれを非フォーカスが、それは空ではない、私たちはそれからヒントを明確にし、それから私たちがそれに焦点を合わせ、それが空であれば、ヒントを戻す。

editText.addTextChangedListener(new TextWatcher() { 
    @Override 
    public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {} 

    @Override 
    public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {} 

    @Override 
    public void afterTextChanged(Editable editable) { 
     if (editable.length() != 0) { 
      editText.setHint(""); 
     } else { 
      editText.setHint(rememberHint); 
     } 
    } 
}); 

このほかに答えるために多くを提供しません:

また、あなたは、すべてのテキストをクリアしたときに、その場所にヒントを返すために、テキストウォッチャーを追加することができますが、それからの非フォーカスを更新し

ユーザーの観点からのデフォルトの動作

0

このリスナーを追加してください:

yourEditText.addTextChangedListener(new TextWatcher() { 

      public void afterTextChanged(Editable s) { 

       // you can call or do what you want with your EditText here 
       youEditText.setHint(""); 
      } 

      public void beforeTextChanged(CharSequence s, int start, int count, int after) {} 

      public void onTextChanged(CharSequence s, int start, int before, int count) {} 
     }); 
関連する問題