2011-06-13 3 views
2

모두 선택/모두 선택 취소 확인란을 선택합니다.BaseAdapter의 Listview에서 모두 선택/선택 취소

여기 내 코드입니다.

private class BaseAdpterSendToServer extends BaseAdapter{ 

     String latti,calulationVal; 
     String longi; 
     String name; 


     public BaseAdpterSendToServer(Context context) { 
     layoutInflater = LayoutInflater.from(context); 
     } 

     @Override 
     public int getCount() { 

      return AndroidCamera.imagelistcount; 
     } 

     @Override 
     public Object getItem(int arg0) { 
      return arg0; 
     } 

     @Override 
     public long getItemId(int arg0) { 
      return arg0; 
     } 

     @Override 
     public View getView(int position, View convertView, ViewGroup arg2) { 

      viewHolder holder; 

      if(convertView==null){ 
       holder = new viewHolder(); 
       convertView =layoutInflater.inflate(R.layout.row_send_to_server, null); 

       holder.showImage = (ImageView)convertView.findViewById(R.id.imgView);    
       holder.txtCalulation = (TextView)convertView.findViewById(R.id.txtCalualtionVal); 
       holder.txtLatti = (TextView)convertView.findViewById(R.id.txtValLat); 
       holder.txtLongi = (TextView)convertView.findViewById(R.id.txtValLong); 
       holder.txtName = (TextView)convertView.findViewById(R.id.txtValName); 
       holder.checkBox = (CheckBox)convertView.findViewById(R.id.chkBox); 
       convertView.setTag(holder); 
      } 
      else{ 
       holder =(viewHolder)convertView.getTag(); 
      } 
      int pos = 0; 
      DBConnect d1 = new DBConnect(getApplicationContext(),"colorCode.db"); 

      pos = position+1; 
      Cursor c = d1.selectedImageId(pos); 


      String path = c.getString(1); 
      calulationVal = c.getString(2); 
      String s= calulationVal.toString(); 
      latti = c.getString(3); 
      longi = c.getString(4); 
      name = c.getString(5); 
       d1.close(); 

      Bitmap b1 = BitmapFactory.decodeFile(path); 


      System.out.println("THE BITMAP ISK ----- "+b1); 

      holder.showImage.setImageBitmap(b1); 
      holder.txtCalulation.setText(""+s); 
      holder.txtLatti.setText(""+latti); 
      holder.txtLongi.setText(""+longi); 
      holder.txtName.setText(""+name); 

      bt_f_unsel.setOnClickListener(new OnClickListener() { 


       } 
      }); 

      return convertView; 
     } 

     class viewHolder{ 
      TextView txtCalulation ,txtLatti, txtLongi,txtName; 
      ImageView showImage; 
      CheckBox checkBox; 
     } 

도움이 될 것입니다.

답변

-4

내 제안은 모든 체크 박스를 선택/선택 해제하는 버튼을 만들고 버튼의 onClick은 for 루프를 수동으로 수행하는 것입니다. 나는 다른 길을 모른다.

는 일반적으로 우리는

for(int i=0; i < listView.getChildCount(); i++){ 
RelativeLayout itemLayout = (RelativeLayout)listView.getChildAt(i); 
CheckBox cb = (CheckBox)itemLayout.findViewById(R.id.MyListViewCheckBox); 
cb.setChecked(true); 

내가 당신을 도움이되기를 바랍니다, 이런 식으로합니다.

+2

모델이 동일하므로 도움이되지 않습니다. 사용자가 목록을 아래로 이동하면 안드로이드는 어댑터가 반환하는 것에 따라 이전 확인란으로 다시 그릴 것입니다. – damluar

0

당신의 모델 (당신이 가지고있는 데이터)을 통과하고 거짓/참을 설정하는 버튼을 만들 수 있습니다. 그런 다음 notifyDataSetChanged()으로 전화하여 화면을 업데이트하도록 지시하십시오.

+0

나는 단추를 가져 갔다. btn을 클릭하면 ... 무엇을 써야하나요? – Siten

+0

데이터를 가져 오는 위치에 따라 다릅니다. 뷰에 데이터를 제공하는 데이터 배열을 반복해야합니다. getView()가 호출 될 때마다 DB에서 데이터를 요청하는 것으로 알고 있습니다. 나는 그것을하지 않을 것이다 ... 단지 그것을 한 번 배열에 저장하고 그것으로부터 데이터를 얻는다. 그런 다음이를 통해 루프를 만들고 끝에 notifyDataSetChanged()를 호출합니다. – damluar

관련 문제