點擊或選中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);//刷新
}......}