1

リストをクリックしたときに画像を変更したい。リスト内の位置をクリックすると、画像が変更されます。別のリスト位置の ImageView 画像は同じになりますが、私はこれに成功していません。

リスト項目の画像を 1 つ選択すると、ビューに右のアイコン画像が表示され、この位置の選択を解除すると、ImageView に矢印の画像が表示されます。

   public View getView(final int position, View convertView,
        final ViewGroup parent) {
    // TODO Auto-generated method stub

    View row = convertView;
    if (row == null) {

        LayoutInflater inflater = ((Activity) mContext).getLayoutInflater();
        row = inflater.inflate(mLayoutResourceId, parent, false);

        mHolder = new BusinessHolder();

        mHolder.mTxt_STDNAME = (TextView) row
                .findViewById(R.id.txt_stdName);

        mHolder.mTxt_STDCOURSE = (TextView) row
                .findViewById(R.id.txt_stdCourse);

        mHolder.mTxt_STDYEAR = (TextView) row
                .findViewById(R.id.txt_stdYear);        

        mHolder.mImageViewSelection = (ImageView) row
                .findViewById(R.id.img_selection);

        mHolder.mLin_layout=(LinearLayout)       row.findViewById(R.id.Layout_listText);


        row.setTag(mHolder);

    } else {

        mHolder = (BusinessHolder) row.getTag();
    }

        mHolder.mTxt_STDNAME.setText(FacultyDatabaseHalper.mStudentStudentName.get(position));

        mHolder.mTxt_STDCOURSE.setText(FacultyDatabaseHalper.mStudentCourse.get(position));

        mHolder.mTxt_STDYEAR.setText(FacultyDatabaseHalper.mStudentYear.get(position));


        mHolder.mLin_layout.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub

                if(myposition.contains(String.valueOf(position))){


                     myposition.remove(String.valueOf(position));


                     mHolder.mImageViewSelection.setImageResource(R.drawable.arrow);


                    }else{


                     myposition.add(String.valueOf(position));




                       mHolder.mImageViewSelection.setImageResource(R.drawable.check);

                    }

                    notifyDataSetChanged();

            }
        });

    return row;
    }

    public class BusinessHolder {

    TextView mTxt_STDNAME, mTxt_STDYEAR,
            mTxt_STDCOURSE; 
    ImageView mImageViewSelection;

    LinearLayout mLin_layout;

    }

    }
4

1 に答える 1

0

listViewビューではなくリスナーをオンにする必要があります。これにより、位置もわかります。

Listview.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {

       Object o = prestListView.getItemAtPosition(position);
       prestationEco str=(prestationEco)o;//As you are using Default String Adapter
       Toast.makeText(getBaseContext(),str.getTitle(),Toast.LENGTH_SHORT).show();
        }
    });
于 2013-03-09T09:05:14.693 に答える