Adapter增加选中状态
import java.util.List;import java.util.Map;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;import com.tcad.util.WebTools;public class MyArrayAdapter extends BaseAdapter{private static List<Map<String,String>> list;private LayoutInflater mInflater;private ViewHolder holder;//alertdialog 被选中初始化falseprivate static boolean[] isFocused ;private static int whichClick = -1;public MyArrayAdapter(Context context,List<Map<String,String>> objects){list = objects;mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);isFocused = new boolean[objects.size()];for(int i=0;i<objects.size();i++){isFocused[i] = false;}}public int getCount() {return list.size();}public Object getItem(int position) {return list.get(position);}public long getItemId(int position) {return position;}public void changeBg(int position){isFocused[whichClick==-1?0:whichClick] = false;whichClick = position;isFocused[position] = true;notifyDataSetChanged();}public View getView(int position, View convertView, ViewGroup parent) {if (convertView == null) { convertView = mInflater.inflate(R.layout.musiccategories, null); holder = new ViewHolder(); holder.s_Name = (TextView) convertView.findViewById(R.id.s_name); convertView.setTag(holder); } else { // Get the ViewHolder back to get fast access to the TextView // and the ImageView. holder = (ViewHolder) convertView.getTag(); }convertView.setBackgroundResource(isFocused[position]?android.R.drawable.alert_dark_frame:android.R.drawable.alert_light_frame);holder.s_Name.setText(list.get(position).get(WebTools.SON_GEMING));return convertView;}static class ViewHolder { TextView s_Name; }}
?
掉 MyArrayAdapter 的changeBg(int)就可以改变该项的背景