綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[求助] 關於怎麼讓listview可以透過按下按鈕改變被選取的狀態

[複製連結] 查看: 1371|回覆: 2|好評: 0
跳轉到指定樓層
樓主
kansas73 | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2015-1-5 00:26

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
我的app是一個有關於物品清單查詢的功能
目前我卡在 我的listview已經可以一行行的顯示出所有的產品
我利用getView讓他旁邊會顯示一個紅色圓形圖案的img代表該物品沒被查詢到
然後我利用Button.OnClickListener來判斷我的物品有沒有被查詢到
並且我希望如果物品被查詢到了能夠將原本紅色圓形圖案變成藍色圓形圖案
可是我怎麼寫都會一次把listview所有的紅色圓形圖案變成藍色圓形圖案
我不知道要怎麼"只"改變一個被查詢對應到的物品的狀態
希望大家可以給我一樣方向與意見,已經苦惱三天了
下面這個是我用來判斷是不是等於我要的物品,如果是就把imgicon變成blue的image
可是像下面這樣寫會讓全部的list變成都是blue

  1. if(bus_2.rs.equals(names[i]))
  2.           {                          
  3.                   holder.imgicon.setImageResource(R.drawable.blue);                  
  4.           }
複製代碼
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
whl | 收聽TA | 只看該作者
發表於 2015-1-5 07:34
Code 貼太少了,沒辦法判斷。
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

板凳
 樓主| kansas73 | 收聽TA | 只看該作者
發表於 2015-1-6 22:28
whl 發表於 2015-1-5 07:34
Code 貼太少了,沒辦法判斷。

to whl :
你好,謝謝您的回覆 我把程式碼給補上來
希望可以幫我解決一下
  1. public class bus_2ad extends BaseAdapter {  
  2.         public static int [] image={ R.drawable.a, R.drawable.b, R.drawable.c,R.drawable.d   
  3.         , R.drawable.e, R.drawable.f, R.drawable.g, R.drawable.h
  4.         , R.drawable.i, R.drawable.j, R.drawable.k, R.drawable.l
  5.         , R.drawable.m, R.drawable.n, R.drawable.o, R.drawable.p
  6.         , R.drawable.q, R.drawable.r, R.drawable.s, R.drawable.t
  7.         , R.drawable.u, R.drawable.v, R.drawable.w, R.drawable.x};
  8.         public static String[] names= new String[bus_2.name.length];
  9.         public static String[] sex= new String[bus_2.sex.length];
  10.         public static int [] imgicon1  = {R.drawable.red};               
  11.         public static String[] th1 = new String[]{""};
  12.     private LayoutInflater mInflater;  
  13.     private List<Map<String, Object>> mData;  
  14.     public static Map<Integer, Boolean> isSelected;     
  15.    
  16.     public bus_2ad(Context context) {  
  17.         mInflater = LayoutInflater.from(context);  
  18.         init();  
  19.     }  
  20.     //初始化  
  21.     private void init() {  
  22.         mData = new ArrayList<Map<String,Object>>();  
  23.         for (int i=0; i<24; i++) {  
  24.             Map<String, Object> map = new HashMap<String, Object>();  
  25.             map.put("img",image[i]);
  26.             map.put("imgicon", imgicon1[0]);
  27.             map.put("title", names[i]);
  28.             map.put("sex", sex[i]);
  29.             map.put("th", "上車狀態:"+th1[0]);
  30.             mData.add(map);  
  31.         }  
  32.         //定义isSelected这个map是记录每个listItem的状态,初始状态全部为false  
  33.         isSelected = new HashMap<Integer, Boolean>();  
  34.         for (int i=0; i<mData.size(); i++) {  
  35.             isSelected.put(i, false);  
  36.         }  
  37.     }  
  38.       
  39.     public int getCount() {  
  40.         // TODO Auto-generated method stub  
  41.         return mData.size();  
  42.     }  
  43.   
  44.     public Object getItem(int position) {  
  45.         // TODO Auto-generated method stub  
  46.         return null;  
  47.     }  
  48.   
  49.     public long getItemId(int position) {  
  50.         // TODO Auto-generated method stub  
  51.         return 0;  
  52.     }  
  53.   
  54.    
  55.         public View getView(int position, View convertView, ViewGroup parent) {  
  56.         ViewHolder holder = null;  
  57.         //convertView为null的时候初始化convertView  
  58.         if (convertView == null) {  
  59.             holder = new ViewHolder();  
  60.             convertView = mInflater.inflate(R.layout.busout_2ad, null);  
  61.             holder.img = (ImageView)convertView.findViewById(R.id.img);
  62.             holder.imgicon = (ImageView)convertView.findViewById(R.id.imgicon);           
  63.             holder.title = (TextView)convertView.findViewById(R.id.title);
  64.             holder.sex = (TextView)convertView.findViewById(R.id.sex);
  65.             holder.th = (TextView)convertView.findViewById(R.id.th);
  66.             convertView.setTag(holder);  
  67.         } else {  
  68.             holder = (ViewHolder)convertView.getTag();  
  69.         }  
  70.         holder.img.setBackgroundResource((Integer)mData.get(position).get("img"));  
  71.         holder.imgicon.setBackgroundResource((Integer)mData.get(position).get("imgicon"));
  72.         holder.title.setText(mData.get(position).get("title").toString());
  73.         holder.sex.setText(mData.get(position).get("sex").toString());
  74.         holder.th.setText(mData.get(position).get("th").toString());      
  75.         for(int i=0;i<names.length;i++)
  76.                 {
  77.           if(bus_2.rs.equals(names[i]))
  78.           {
  79.                            
  80.                   holder.imgicon.setImageResource(R.drawable.blue);
  81.                   
  82.           }
  83.         }
  84.         return convertView;  
  85.     }
  86.        
  87.       
  88.     public static final class ViewHolder {  
  89.         public ImageView img;
  90.         public TextView title,sex,th;
  91.         public static ImageView imgicon;
  92.         int position;
  93.     }

  94.           
  95. }
複製代碼
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則