2014-04-04 25 views
0
public class ImageAdapter extends BaseAdapter 
{ 
     private LayoutInflater mInflater; 
     private Context mContext; 
     public ImageAdapter(Context context) 
     { 
      mContext = context; 
     } 
     public int getCount() 
     { 
      return count; 
     } 
     public Object getItem(int position) 
     { 
      return position; 
     } 
     public long getItemId(int position) 
     { 
      return position; 
     } 
     public View getView(final int position, View convertView, ViewGroup parent) 
     { 
      ViewHolder holder; 
      if (convertView == null) 
      { 
       holder = new ViewHolder(); 
       convertView = LayoutInflater.from(mContext).inflate(R.layout.state_info, null); 

       holder.textview = (TextView) convertView.findViewById(R.id.thumbImage);     

       holder.checkbox = (CheckBox) convertView.findViewById(R.id.itemCheckBox);     
       convertView.setTag(holder); 

      } 
      else 
      { 
       holder = (ViewHolder) convertView.getTag(); 
      }   
      holder.checkbox.setId(position); 
      holder.textview.setId(position); 

      holder.checkbox.setOnClickListener(new OnClickListener() { 
       public void onClick(View v) 
       {  
        // String h="hello"; 
        CheckBox cb = (CheckBox) v; 
        int id = cb.getId(); 

        if(cb.isChecked()) 
        { 
         cb.setChecked(false); 
        }       
        Toast.makeText(Four.this, "Selected CheckBox ID" + v.getId(), Toast.LENGTH_SHORT).show(); 

       } 
      }); 

      holder.textview.setText(items.get(position).getName()); 

      holder.checkbox.setChecked(thumbnailsselection[position]); 
      holder.id = position; 
      return convertView; 
     }   
     public void clear() 
     { 
      CheckBox cb=(CheckBox)findViewById(R.id.itemCheckBox); 
     // int id=cb.getId(); 
      for(int j=0;j<count;j++) 
      {    
        cb.setChecked(false); 
      } 
     } 
} 

class ViewHolder 
{ 
     TextView textview , textIndexId; 
     CheckBox checkbox; 
     int id; 
} 
+0

什麼是你的問題 –

+0

看來,他是填充自定義佈局項目一個ListView(因此ViewHolderPattern),每個都包含一些文本和一個複選框。現在,這些視圖中只有一個應該可以一次檢查。 –

回答

0

公共類ImageAdapter延伸BaseAdapter { 私人LayoutInflater mInflater; private Context mContext; public ImageAdapter(Context context) mContext = context; } public int getCount() { return count; } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } public View getView(final int position,View convertView,ViewGroup parent) ViewHolder holder; if(convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(R.layout.state_info,null);

   holder = new ViewHolder();          
       holder.textview = (TextView) convertView.findViewById(R.id.thumbImage);            
       holder.checkbox = (CheckBox) convertView.findViewById(R.id.itemCheckBox); 

       convertView.setTag(holder); 

      } 
      else 
      {  
       holder = (ViewHolder) convertView.getTag(); 
      }   

      convertView.setTag(holder); 

      //holder.checkbox.setId(position); 
      holder.textview.setId(position); 

      holder.checkbox.setId(position); 
      holder.checkbox.setOnClickListener(new OnClickListener() { 
       @Override 
       public void onClick(View v) 
       { 
        for (int i = 0; i < count; i++) 
        { 
         if (v.getId() == i) 
         { 
          thumbnailsselection[i] = true; 
          Log.v("check", ""+position); 

         } 
         else 
         { 
          thumbnailsselection[i] = false; 
         } 
        } 
        notifyDataSetChanged(); 
       } 
      }); 

      if (thumbnailsselection[position]) 
      { 
       holder.checkbox.setChecked(true); 
      } 
      else 
      { 
       holder.checkbox.setChecked(false); 
      } 

      holder.textview.setText(items.get(position).getName()); 

      holder.checkbox.setChecked(thumbnailsselection[position]); 
      holder.id = position; 
      return convertView; 

     }   

} 
+0

其作品可以直接修改代碼 – user2294439

0

你可以做一兩件事,而使用複選框可以使用氡按鈕,但只是改變了風格複選框

相關問題