2012-01-09 7 views
0

私は見出し名、ID、電話番号のリストビューを持っています
それと一緒に私はチェックボックスのリストを持っています。それに対応する行のチェックボックスは、対応する行のIDと名前を選択し、そのデータを他のページのクリックメニューに渡します。
ステップ
2.byは、リストビュー
3で確認チェックボックスの数をカウントした後、そのチェックボックスをクリックすることにより、次のページにチェックされているそれぞれのnごとに対応する行のデータを送信
1チェック複数のチェックボックスを行いますそのページのメニューボタンアンドロイドの次のページへのチェックボックスをクリックしてデータを取る方法

どうすればいいですか?誰も私に問題がここには何のアイデア:)

private class SummaryAdapter extends ArrayAdapter<Item>{ 
    private ArrayList<Item> items; 
    public SummaryAdapter(Context context,int textViewResourceId,ArrayList<Item> items){ 
     super(context,textViewResourceId,items); 
     this.items=items; 
    } 
    public View getView(int position,View convertView,ViewGroup parent){ 
     View v=convertView; 

     if(v==null){ 
      LayoutInflater vi=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      v=vi.inflate(R.layout.item,null); 
     } 
     Item o=items.get(position); 
     if(o!=null){ 
      final TextView idView=(TextView)v.findViewById(R.id.itemId); 
      final TextView captionView=(TextView)v.findViewById(R.id.itemCaption); 
      final TextView phoneView=(TextView)v.findViewById(R.id.itemPhone); 
      final TextView typeView=(TextView)v.findViewById(R.id.itemType); 

      chkReport=(CheckBox)v.findViewById(R.id.chkReport); 
      //TextView t5=(TextView)v.findViewById(R.id.AdvanceSearchVisitID); 


      chkReport.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 

       } 
      }); 
      if(idView!=null){ 
       idView.setText(""+o.getId()); 
      } 


      if(captionView!=null){ 
       captionView.setText(o.getCaption()); 
      } 

      if(phoneView!=null){ 
       phoneView.setText(o.getPhone()); 
      } 

      if(typeView!=null){ 
       typeView.setText(o.getType()); 
      } 

      captionView.setOnClickListener(new OnClickListener(){ 
       @Override 
       public void onClick(View arg0) { 
        fnNameClicked(idView.getText().toString(),typeView.getText().toString()); 
       } 

      }); 


     /* chkReport.setOnCheckedChangeListener(new OnCheckedChangeListener(){ 

       @Override 
       public void onCheckedChanged(CompoundButton arg0,boolean arg1) { 
        if(arg0.isChecked()){ 
        fnCheckChanged(idView.getText().toString(),captionView.getText().toString(),arg1,arg0); 
        } 

       } 
      });*/ 

     } 
     return v; 
    } 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

boolean result=super.onCreateOptionsMenu(menu); 

menu.add(0,menu_1,1,R.string.menu_track_sales_force); 



menu.add(0,menu_2,2,R.string.menu_select_all); 
    menu.add(0,menu_3,3,R.string.menu_unselect_all); 
    return result; 
} 
    @ 

Override 
    public boolean onOptionsItemSelected(MenuItem item){ 
    switch(item.getItemId()){  
     case menu_1: 
      //fnSave(); 
      boolean bFlg=false; 
      boolean bMobile=false; 
      String sPhoneMsg=""; 


     Integer listCount=lv.getCount(); 
     Integer iListCount=0; 


     if(bNoMoreRecords==true){ 
      iListCount=listCount; 
     } 
     else{ 
      iListCount=listCount-1; 
     } 

     for(Integer xx=0;xx<iListCount;xx++){ 
      if(lv.isItemChecked(xx)){ 
       bFlg=true; 

       if("".equals(m_result.get(xx).getId())){ 
        sPhoneMsg="Id of user "+m_result.get(xx).getCaption().toString()+" is not available, please remove it from selection."; 
        bMobile=true; 
        break; 
       } 
      } 
     } 
     if(bMobile==true){ 
      MsgBox1(ctx,sPhoneMsg); 
      return true; 
     } 
     if(bFlg==false){ 
      MsgBox1(ctx,"Please select atleast one ID !"); 
      return true; 
     } 

     StringBuffer sb=new StringBuffer(""); 

     SparseBooleanArray checkedItems=lv.getCheckedItemPositions(); 
     int checkedItemsCount=checkedItems.size(); 

     if(bNoMoreRecords==false){ 
      if(listCount==checkedItemsCount){ 
       checkedItemsCount=checkedItemsCount-1; 
      } 
     } 

     boolean isFirstSelected = true; 

     for (int i = 0; i < checkedItemsCount; ++i) { 
      int position = checkedItems.keyAt(i); 
      boolean isChecked = checkedItems.valueAt(i); 

      if(isChecked){ 
       if(!isFirstSelected){ 
        sb.append(", "); 
       } 
       if("".equals(m_result.get(position).getId())){} 
       else{ 

        sb.append(m_result.get(position).getId()); 
       } 
       isFirstSelected=false; 
      } 
     } 

     String ss=sb.toString(); 

     Intent intent=new Intent(this,SRSDTrackForceDetails.class); 
     intent.putExtra("UserID",ss); 
     startActivity(intent); 

     //StringBuffer sb=new StringBuffer("Selection: "); 
    // SparseBooleanArray checkedItems=lv.getCheckedItemPositions(); 
     //if (checkedItems==null || checkedItems.size()==0){ 
     // MsgBox2(ctx,"Please select atleast one ID !"); 
      //Toast.makeText(this, "Please select atleast one ID !", Toast.LENGTH_LONG).show(); 
     // return true; 
     MsgBox1(ctx,"Tracking queried successfully !"); 
     //Toast.makeText(this, sb.toString(), Toast.LENGTH_LONG).show(); 
     return true; 
    case menu_2: 
     fnSelectAll(); 
     return true; 
    case menu_3: 
     fnUnSelectAll(); 
     return true; 
} 
return super.onOptionsItemSelected(item); 

}

private void fnSelectAll(){ 
     Integer listCount=lv.getCheckedItemPosition(); 
     //listView.getCheckedItemPositions(); 
     for(Integer xx=0;xx<listCount;xx++){ 
      lv.setItemChecked(xx,true); 
     } 
     //listView 
    } 
    private void fnUnSelectAll(){ 
     Integer listCount=lv.getCheckedItemPosition(); 
     //listView.getCheckedItemPositions(); 
     for(Integer xx=0;xx<listCount;xx++){ 
      lv.setItemChecked(xx,false); 
     } 
     //listView 
    } 

答えて

0

を与えることができます。あなたのリストのサイズと同じ大きさのフラグの配列を持っているだけです。このブール値の配列には、リスト内の各項目のチェックされた状態が含まれます。メニューボタンをクリックするだけで、この配列全体を繰り返し処理し、値trueでは、リストアイテム(id、name)を一時的なarraylistまたはarrayListに追加し、そのリストを別のアクティビティを開始するインテントに配置します。

+0

Welll theorticall xplanationは常に悪いですcodeeで私を助けることができます –

関連する問題