ZhipSoft.com
              冬去春來
                  鄭重聲明:本Blog純屬個人學習、工作需要,記錄相關資料。請不要發表任何有人身攻擊的言論,謝謝!!www.ZhipSoft.com
          posts - 94,comments - 149,trackbacks - 0

          構造自己的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);
                      }
                  }
              }
          });



                  本Blog純屬個人學習、工作需要,記錄相關資料。請不要發表任何有人身攻擊的言論,謝謝! www.zhipsoft.cn
          posted on 2011-01-25 17:10 ZhipSoft 閱讀(12272) 評論(1)  編輯  收藏 所屬分類: AndRoid

          FeedBack:
          # re: [摘]android listview選中某一行,成選中狀態顏色高亮顯示
          2011-09-03 15:02 | qinglfxy
          這樣的都不會達到理想的效果,點擊某頁的某一項,顏色改變,其他頁也會有一項的顏色跟著改變的。  回復  更多評論
            
          主站蜘蛛池模板: 铁岭县| 保靖县| 津南区| 桂东县| 资阳市| 博客| 保德县| 托克托县| 宣城市| 开化县| 洪洞县| 西城区| 陆河县| 胶州市| 嘉义市| 六安市| 务川| 上虞市| 教育| 南康市| 洛南县| 金华市| 汝阳县| 民丰县| 佛教| 塔河县| 霞浦县| 鲁甸县| 冕宁县| 申扎县| 韩城市| 城口县| 阳春市| 焦作市| 宁德市| 伊春市| 开鲁县| 尖扎县| 会同县| 晋城| 马尔康县|