android listview选中某一行,成选中状态颜色高亮显示

构造自己的adapter,在getView中,设置颜色,点击item,刷新listview。

代码:

view plaincopy to clipboardprint?
import java.util.ArrayList;   
import java.util.HashMap;   
import java.util.List;   
import java.util.Map;   
import android.app.Activity;   
import android.content.Context;   
import android.graphics.Color;   
import android.os.Bundle;   
import android.view.LayoutInflater;   
import android.view.View;   
import android.view.ViewGroup;   
import android.widget.AdapterView;   
import android.widget.BaseAdapter;   
import android.widget.ListView;   
import android.widget.TextView;   
public class MyListView4 extends Activity {   
    private List<Map<String, Object>> mData;       
    ListView setlistViewLeft;   
    MyAdapter adapter;     
       
    @Override  
    public void onCreate(Bundle savedInstanceState) {   
        super.onCreate(savedInstanceState);   
        setContentView(R.layout.list);   
           
        mData = getData();         
        setlistViewLeft = (ListView)findViewById(R.id.listleft);    
           
        adapter = new MyAdapter(this);   
        setlistViewLeft.setAdapter(adapter);   
        setlistViewLeft.setOnItemClickListener(mLeftListOnItemClick);   
    }   
    private List<Map<String, Object>> getData() {   
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();   
        Map<String, Object> map = new HashMap<String, Object>();   
        map.put("title", "G1");   
        map.put("info", "google 1");   
        list.add(map);   
        map = new HashMap<String, Object>();   
        map.put("title", "G2");   
        map.put("info", "google 2");   
        list.add(map);   
        map = new HashMap<String, Object>();   
        map.put("title", "G3");   
        map.put("info", "google 3");   
        list.add(map);   
           
        map = new HashMap<String, Object>();   
        map.put("title", "G4");   
        map.put("info", "google 4");   
        list.add(map);   
           
        map = new HashMap<String, Object>();   
        map.put("title", "G5");   
        map.put("info", "google 5");   
        list.add(map);   
        return list;   
    }   
    AdapterView.OnItemClickListener mLeftListOnItemClick = new AdapterView.OnItemClickListener() {   
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {   
               
            adapter.setSelectItem(arg2);   
            adapter.notifyDataSetInvalidated();   
//          adapter.notifyDataSetChanged();   
        }   
           
    };   
    /**  
     * listview中点击按键弹出对话框  
     */  
    public final class ViewHolder {   
        public TextView titleText;   
        public TextView infoText;          
    }   
    public class MyAdapter extends BaseAdapter {   
        private LayoutInflater mInflater;   
        public MyAdapter(Context context) {   
            this.mInflater = LayoutInflater.from(context);   
        }   
        public int getCount() {   
            // TODO Auto-generated method stub   
            return mData.size();   
        }   
        public Object getItem(int arg0) {   
            // TODO Auto-generated method stub   
            return mData.get(arg0);   
        }   
        public long getItemId(int arg0) {   
            // TODO Auto-generated method stub   
            return arg0;   
        }   
        public View getView(int position, View convertView, ViewGroup parent) {   
            ViewHolder holder = null;   
            if (convertView == null) {   
                holder = new ViewHolder();   
                convertView = mInflater.inflate(R.layout.leftview, null);   
                holder.titleText = (TextView) convertView.findViewById(R.id.titleleftlist);   
                holder.infoText = (TextView) convertView.findViewById(R.id.infoleftlist);   
                   
                convertView.setTag(holder);            
            } else {   
                holder = (ViewHolder) convertView.getTag();   
            }   
               
            holder.titleText.setText((String) mData.get(position).get("title"));   
            holder.infoText.setText((String) mData.get(position).get("info"));             
               
            if (position == selectItem) {   
                convertView.setBackgroundColor(Color.RED);   
            }    
            else {   
                convertView.setBackgroundColor(Color.TRANSPARENT);   
            }      
               
            //convertView.getBackground().setAlpha(80);    
               
            return convertView;   
        }   
        public  void setSelectItem(int selectItem) {   
             this.selectItem = selectItem;   
        }   
        private int  selectItem=-1;   
    }   
}  
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class MyListView4 extends Activity {
 private List<Map<String, Object>> mData; 
 ListView setlistViewLeft;
 MyAdapter adapter; 
 
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.list);
  
  mData = getData();  
  setlistViewLeft = (ListView)findViewById(R.id.listleft); 
  
  adapter = new MyAdapter(this);
  setlistViewLeft.setAdapter(adapter);
  setlistViewLeft.setOnItemClickListener(mLeftListOnItemClick);
 }
 private List<Map<String, Object>> getData() {
  List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
  Map<String, Object> map = new HashMap<String, Object>();
  map.put("title", "G1");
  map.put("info", "google 1");
  list.add(map);
  map = new HashMap<String, Object>();
  map.put("title", "G2");
  map.put("info", "google 2");
  list.add(map);
  map = new HashMap<String, Object>();
  map.put("title", "G3");
  map.put("info", "google 3");
  list.add(map);
  
  map = new HashMap<String, Object>();
  map.put("title", "G4");
  map.put("info", "google 4");
  list.add(map);
  
  map = new HashMap<String, Object>();
  map.put("title", "G5");
  map.put("info", "google 5");
  list.add(map);
  return list;
 }
 AdapterView.OnItemClickListener mLeftListOnItemClick = new AdapterView.OnItemClickListener() {
  public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
   
   adapter.setSelectItem(arg2);
   adapter.notifyDataSetInvalidated();
//   adapter.notifyDataSetChanged();
  }
  
 };
 /**
  * listview中点击按键弹出对话框
  */
 public final class ViewHolder {
  public TextView titleText;
  public TextView infoText;  
 }
 public class MyAdapter extends BaseAdapter {
  private LayoutInflater mInflater;
  public MyAdapter(Context context) {
   this.mInflater = LayoutInflater.from(context);
  }
  public int getCount() {
   // TODO Auto-generated method stub
   return mData.size();
  }
  public Object getItem(int arg0) {
   // TODO Auto-generated method stub
   return mData.get(arg0);
  }
  public long getItemId(int arg0) {
   // TODO Auto-generated method stub
   return arg0;
  }
  public View getView(int position, View convertView, ViewGroup parent) {
   ViewHolder holder = null;
   if (convertView == null) {
    holder = new ViewHolder();
    convertView = mInflater.inflate(R.layout.leftview, null);
    holder.titleText = (TextView) convertView.findViewById(R.id.titleleftlist);
    holder.infoText = (TextView) convertView.findViewById(R.id.infoleftlist);
    
    convertView.setTag(holder);   
   } else {
    holder = (ViewHolder) convertView.getTag();
   }
   
   holder.titleText.setText((String) mData.get(position).get("title"));
   holder.infoText.setText((String) mData.get(position).get("info"));   
   
   if (position == selectItem) {
    convertView.setBackgroundColor(Color.RED);
   } 
   else {
    convertView.setBackgroundColor(Color.TRANSPARENT);
   } 
   
   //convertView.getBackground().setAlpha(80); 
   
   return convertView;
  }
  public  void setSelectItem(int selectItem) {
    this.selectItem = selectItem;
  }
  private int  selectItem=-1;
 }


android 自定义adapter extends BaseAdapter,做有自己布局的listView
或:

siteListView.setOnItemClickListener(new OnItemClickListener() {
   @Override
    public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
        for(int i=0;i<parent.getCount();i++){
            View v=parent.getChildAt(parent.getCount()-1-i);
            if (position == i) {
                v.setBackgroundColor(Color.RED);
            } else {
                v.setBackgroundColor(Color.TRANSPARENT);
            }
        }
    }
});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值