5

Android アプリ用のカスタム listView を作成しましたが、アイテムの個別の部分に対して個別の onClickListeners を作成する際に問題があります。私のアイテムには写真とテキストがあります。私が望むのは、クリックされたものに応じて異なるアクティビティを開始することです。

その onClick() メソッドは、DataBinder クラスの getView() メソッドで定義できないアクティビティを開始する必要があります。(DataBinder は私の listView をカスタム レイアウトで膨らませます)

何か助けはありますか?

ありがとうございました!

4

3 に答える 3

9

カスタムListAdapter's getViewメソッドではonClickListeners、クリックに対して動作させたいさまざまなサブビューに追加する必要があります。

メソッドの実装方法の例getView:

class CustomListAdapter extends ArrayAdapter<String> implements OnClickListener {

    public CustomListAdapter(Context context, int textViewResourceId) {
        super(context, textViewResourceId);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v = convertView;

        TextView tv = (TextView) v.findViewById(R.id.textView1);
        tv.setOnClickListener(this);

        ImageView iv = (ImageView) v.findViewById(R.id.imageView1);
        iv.setOnClickListener(this);

        return super.getView(position, convertView, parent);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.textView1:
            // Do stuff accordingly...
            break;
        case R.id.imageView1:
            // Do stuff when imageView1 is clicked...
        default:
            break;
        }
    }
}
于 2013-04-02T16:18:06.563 に答える
1

リスト項目のと に別々onClick()のメソッドを定義することは不可能ではありません。これは、あなたの.ImageViewTextViewonClick()ListView

各アイテムonClick()のアダプターにメソッドを実装します。getView()

于 2013-04-02T16:16:42.757 に答える
0

1 つのオプションは、個別の要素に onClick メソッドを含めることです。カスタム行を XML で作成したと仮定すると、onClick フィールドにメソッドを追加し、その要素 (画像など) を設定してクリックを許可し (まだ許可されていない場合)、クラスでメソッドを定義するのは簡単です。 . 次に、がクリックされると、リストビューのクリック ハンドラーが起動しますが、要素 (画像) がクリックされると、独自の onClick メソッドが起動されます。

于 2013-04-02T16:18:32.457 に答える