点击或选中ListView中的一项后,使item背景改变,失去焦点同样显示选中的背景,重新选中另外一项才刷新;
在Adapter中配置:
public class MyAdapter extends BaseAdapter{
int mSelect = 0; //选中项
......
public void changeSelected(int positon){ //刷新方法
if(positon != mSelect){
mSelect = positon;
notifyDataSetChanged();
}
}
public View getView(int position, View convertView, ViewGroup parent) {
// if(convertView==null){
LayoutInflater factory = LayoutInflater.from(context);
View v = (View) factory.inflate(R.layout.list_item, null);
TextView tv = (TextView) v.findViewById(R.id.Item_tv);
tv.setText("test");
// }
if(mSelect==position){
v.setBackgroundResource(R.drawable.fc_bg); //选中项背景
}else{
v.setBackgroundResource(R.drawable.bg); //其他项背景
}
return v;
}
}
配置好了之后,下面就是应用:
...........
mAdapter = new MyAdapter(...);
myList.setAdapter(mAdapter);
//////////点击监听
myList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
mAdapter.changeSelected(position);//刷新
}......}
////////////////选中监听
myList.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
mAdapter.changeSelected(position);//刷新
}......}