0

私をクリックするとImageView、クリックされた画像のIDは返されませんが、最後に追加された画像が返されます。があるので、常に me (0-12)13を返します。12私は自分が間違っていることを理解していません。これが私のコードです:

ImageView imgBook = null;
tlList = (TableLayout) findViewById(R.id.tl_list1);

public void loadList(){
    for (int o = 0; o < studies.size(); o++) {
        LayoutInflater li_est = (LayoutInflater) getSystemService(
                Context.LAYOUT_INFLATER_SERVICE);

        if (LoginVO.app==0) {
            vEst = li_est.inflate(R.layout.details1, null);
        } else if (LoginVO.app==1) {
            vEst = li_est.inflate(R.layout.details2, null);
        } else if (LoginVO.app==2) {
            vEst = li_est.inflate(R.layout.details3, null);
        }

        imgBook = (ImageView) vEst.findViewById(R.id.est_img_libro);
        imgBook.setId(o);
        tlList.addView(vEst);

        imgBook.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                idColumn=imgBook.getId();
                Log.e("TAG","ID COLUMN: "+idColumn);
            }
        });

idColumn常に12、配列の合計サイズです。

何が問題ですか?

4

2 に答える 2

1

次のようなことをする必要があります:

imgBook.setTag(o);
        imgBook.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                int id = Integer.parseInt(v.getTag().toString());
            }
        });
于 2013-02-25T11:30:18.267 に答える
0

イベントの原因となったビューを把握する必要があります。

ImageView imgViewClicked = (ImageView) v;

それ以外の場合は、 for ループで常に o の最後の値を持つ imgBook 変数を使用しているだけです。

于 2013-02-25T10:54:33.113 に答える