如图:
我采用的步骤是:
1. 在LISTVIEW的onItemClickListener里面给自己的适配器一个标记
mobileListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) { mobileNumListAdapter.setSelectedIndex(position); } });
2. 在适配器代码里面如下
//给一个默认值-1 private int selectedIndex = -1; public void setSelectedIndex(int ind) { selectedIndex = ind; notifyDataSetChanged(); } //当渲染的时候 比较并决定选中与否 if (selectedIndex != position) { convertView.setVisibility(View.VISIBLE); } else { convertView.setVisibility(View.GONE); }
后面说的话: 当然也可以在OnItemClickListener里面实现, 考虑到这容易回导致重复渲染,觉得还是上面的办法好点(好吧 我承认我这个是瞎编的)
view.findViewById(R.id.mobile_item_icon).setVisibility(View.VISIBLE); currentIndex = position;