主要思路:在点击事件获取选中的position,然后传给adapter选中的position,然后重绘视图
主要代码:
1.activity listveiw点击事件
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
rightAdapter.setSelectedItem(position);
rightAdapter.notifyDataSetChanged();
}
2.继承BaseAdapter的adapter
public void setSelectedItem(int selectedItem) {
this.selectedItem = selectedItem;
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
convertView = mLayoutInflater.inflate(R.layout.listview_right_item,
parent, false);
holder.tvItemName = (TextView) convertView
.findViewById(R.id.tv_item_name);
holder.ivItemChoice = (ImageView) convertView
.findViewById(R.id.iv_item_choice);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
String itemStr = dataList.get(position);
holder.tvItemName.setText(itemStr);
// different background
if (position == selectedItem) {
convertView.setBackgroundResource(R.drawable.radio_p);
} else {
convertView.setBackground(null);
}
}