1

リストビューで選択したアイテムの背景を変更しようとすると、リストビューをスクロールすると、より多くのアイテムが選択されます。アイテムリストをリサイクルしたため、この問題が発生したことは知っていますが、この問題を解決する方法が見つかりませんでした

ここに私のコード: class BabyAdapter extends ArrayAdapter {

    BabyHolder babyholder;

    BabyAdapter(ArrayList<BabyHolder> list) {
        super(BabyNames.this, R.layout.namerow, R.id.tvName, list);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View row = super.getView(position, convertView, parent);
        TextView tv = (TextView) row.getTag();

        if(tv == null){
            tv = (TextView) row.findViewById(R.id.tvName);
            row.setTag(tv);
        }

        row.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                v.setBackgroundColor(Color.BLUE);

            }
        });

        babyholder = getItem(position);
        tv.setTag(Integer.valueOf(position));
        tv.setText(babyholder.name);

        return row;
    }
}

public BabyHolder getItem(int position) {
    return (((BabyAdapter) getListAdapter()).getItem(position));
}

助けてくれてありがとう :]

4

1 に答える 1

0

listView を膨張させるために使用される layout.xml ファイルに移動し、その中で背景を次のように設定できます。

android:background="?android:attr/selectableItemBackground"
于 2012-12-19T05:46:17.453 に答える