1

ここに画像の説明を入力

1.各コンポーネントにあまり多くのセレクターを書きたくない。

2. EditTextDrawable という名前の EditText のサブクラスを作成しようとしました。それから私はこのようにしました:

public EditTextWithDrawable(Context context, final Drawable normal, final Drawable focus){
    super(context);
    setOnFocusChangeListener(new OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            // changeDrawable(hasFocus, normal, focus);
        }
    });

しかし、OnFocusChangeListener をリセットしたい場合は、コードをもう一度入力する必要があります。それは退屈だ。

これを解決する簡単な方法はありますか?tksアドバンス!

4

1 に答える 1

0
@Override
protected void onFocusChanged(boolean focused, int direction,
        Rect previouslyFocusedRect) {
    // TODO Auto-generated method stub
    super.onFocusChanged(focused, direction, previouslyFocusedRect);
    if (focused) {
        setCompoundDrawablesWithIntrinsicBounds(fous, null, null, null);
    }else {
        setCompoundDrawablesWithIntrinsicBounds(normal, null, null, null);
    }
}
于 2013-06-18T02:54:59.813 に答える