web-dev-qa-db-ja.com

TextViewのsetErrorアイコンのカスタマイズ

setErrorメソッドをTextViewに設定し、デフォルトのAndroidアイコン)の代わりにカスタムアイコンを使用したいので、これを試しました。

((EditText)findViewById(R.id.edtTitle)).setError(getResources().getText(R.string.errEmptyTitle), 
         getResources().getDrawable(R.drawable.ico_warning_small);

カスタムメッセージは表示されますが、カスタムアイコンは表示されません。私もこれを試しました:

Drawable warning = (Drawable)getResources().getDrawable(R.drawable.ico_warning_small);
((EditText)findViewById(R.id.edtTitle))
      .setError(getResources().getText(R.string.errEmptyTitle), warning);

ほぼ同じですが、それでも試してみることにしました。しかし、これも役に立ちませんでした-私はまだアイコンを見ることができません。他のAndroidシステムアイコンを使用してみましたが、表示されるかどうかを確認するためだけに使用しましたが、表示されません。

だから私は何が間違っているのですか?そのカスタムアイコンを設定する方法はありますか?

17
Igal

この問題については、ここで説明および解決します。

EditText setError()アイコン付き、ポップアップメッセージなし

回答を拡張しても、コメントに自動変換されないことを願っています。

5
Steelight

SetErrorで使用する前に、ドローアブルの境界を設定する必要があります。

drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
editText.setError("error", drawable);
45
JP2014

アイコンをまったく表示したくない場合は、

editText.setError("error", null);
7
Vasily Kabunov
    Drawable customErrorDrawable = getResources().getDrawable(R.drawable.error_icon);
        customErrorDrawable.setBounds(0, 0, customErrorDrawable.getIntrinsicWidth(), customErrorDrawable.getIntrinsicHeight());


 editText.setError("please enter data",customErrorDrawable);
1