48

Android アプリケーション用に新しいカスタム スタイルを作成しようとしています。setErrorに設定した後に表示される errorText にスタイルを与える必要がありますEditText

スタイルをカスタマイズするにはどうすればよいですか?

例: style.xmlでbackground白とtextColor青などを設定したい

ここに画像の説明を入力

4

7 に答える 7

31

解決策は最後にあり、スクリーンショットは次のとおりです。

スタイル付きエラー


いくつかの説明

次の行を使用してテキストの色を設定できる場合があります

yourEditText.setError(Html.fromHtml("<font color='blue'>this is the error</font>"));

ただし、これは保証されない場合があります。


ソースコードによると、これは内部クラスであるPopupタイプを示しています。これの内容はから膨らんだ単一ですErrorPopupTextViewPopupTextViewcom.android.internal.R.layout.textview_hint

final TextView err = (TextView) inflater.inflate(com.android.internal.R.layout.textview_hint,
      null);

この背景はPopup、アンカーの上に配置する必要があるかどうかによって異なります。

if (above) {
    mView.setBackgroundResource(com.android.internal.R.drawable.popup_inline_error_above);
} else {
    mView.setBackgroundResource(com.android.internal.R.drawable.popup_inline_error);
}

ポップアップの作成に使用されるすべてのAndroidリソースは内部にあり、最終的にはハードコーディングされているため、独自のエラーポップアップを作成するのが最善の方法です。これは非常に簡単で、デフォルトのポップアップは単にエラーを表示するために使用されるため、通常のポップアップに干渉することはありませんEditText。したがって、独自のポップアップを作成しても問題ありません。


解決

ここで作成しました:WidgyWidgets

于 2013-03-07T13:28:03.883 に答える
21

エラーポップアップは内部スタイルを使用しているため、そのスタイルをそのようにカスタマイズすることはできないと思います。

mPopupInlineErrorBackgroundId = getResourceId(mPopupInlineErrorBackgroundId,
                    com.android.internal.R.styleable.Theme_errorMessageBackground);
mView.setBackgroundResource(mPopupInlineErrorBackgroundId);

Spannedただし、オーバーロードされたを使用して、カスタムエラーアイコンを設定できますsetError(CharSequence, Drawable)

Spannedを使用してHTMLから簡単に作成できますfromHtml()

ただし、ポップアップの背景画像を設定することはできません:-(

于 2013-03-05T13:47:13.967 に答える
4

受け入れられた回答を見ましたが、提案されたライブラリが好きではありません

これは Android フレームワークのバグだと思います。ここでバグを報告しました: https://code.google.com/p/android/issues/detail?id=158590

編集: Android デザイン ライブラリ TextInputLayout ウィジェットを使用して、EditText のエラー処理を改善できます。

ここでどのように見えるかを見てください: https ://www.youtube.com/watch?v=YnQHb0fNtF8

ここでの実装方法: http://code.tutsplus.com/tutorials/creating-a-login-screen-using-textinputlayout--cms-24168

于 2015-03-06T10:05:40.737 に答える