0

現在、カスタムImageViewを作成しています。このimageviewを実際に変換するのは、複数の状態のボタンです。

私の場合、ボタンには3つの状態があり、「はい」と答え、「いいえ」と答え、「未答え」と答えます。ラジオグループ/ボタンは絶対に使いたくありません。

imageviewの基本的な設定があります。状態に応じて画像を適切に変更するonclick機能を備えています。今のところ、これは十字の付いたチェックボックス、空のチェックボックス、チェックの入ったチェックボックスです。

私が欲しいのは、状態が変化したとき(画像がクリックされたとき)にテキストが欲しいということです。テキストは常に周りにあり、画像ビューの上には決してないはずです。その値も変更します。customCompInstance.getText();に似たメソッドを呼び出せるようにしたい。customCompInstance.getText();

私が考えているのは、カスタムimageviewクラスにはTextViewメンバーが必要ですが、それを左側に配置し、imageviewに水平に配置する方法がわかりません。

xmlで2つの異なる要素を使用することはオプションではありません。

テキストビューを追加し、それをimageviewの右側に配置することは正しい解決策です。そうでない場合は、何を提案しますか。そうであれば、実際にこれを実現するためのヒントを教えてください。

私のクラスの簡略版:

public class AnswerImageView extends ImageView {
    private AnswerState mSelectionState;

    /**
     * @param context
     */
    public AnswerImageView(Context context)
    {
        super(context);
        // TODO Auto-generated constructor stub
        setImageResource(R.drawable.answer_none);
        setTag(R.drawable.answer_none);
        mSelectionState = AnswerState.ANSWER_NONE;
    }

    /**
     * @param context
     * @param attrs
     */
    public AnswerImageView(Context context, AttributeSet attrs)
    {
        super(context, attrs);
        // TODO Auto-generated constructor stub
        setImageResource(R.drawable.answer_none);
        setTag(R.drawable.answer_none);
        mSelectionState = AnswerState.ANSWER_NONE;
    }

    /**
     * @param context
     * @param attrs
     * @param defStyle
     */
    public AnswerImageView(Context context, AttributeSet attrs, int defStyle)
    {
        super(context, attrs, defStyle);
        // TODO Auto-generated constructor stub
        setImageResource(R.drawable.answer_none);
        setTag(R.drawable.answer_none);
        mSelectionState = AnswerState.ANSWER_NONE;
    }

    public AnswerState getSelectionState() {
        return mSelectionState;
    }

    public void setSelectionState(AnswerState selectionState) {
        this.mSelectionState = selectionState;
    }
}

onclicksに反応するメソッドがあり、すべて正常に機能します。このコンポーネントにテキストビューを追加することについて純粋に質問しています。基本的に、2つのコンポーネントを1つに結合します。

4

1 に答える 1

1

TextViewの代わりに拡張しImageView、メソッドを確認する必要がありますTextView.setCompoundDrawableXXXこれがドキュメントへのリンクです。

于 2012-11-21T13:27:26.433 に答える