回答

3
boolean bulkflag = false; 
    ListView reportslistview = (ListView) findViewById(android.R.id.list); 
    public class MyAdapter extends SimpleAdapter { 
    //private List<Table> tables; 
    SharedPreferences prefs; 
    private Activity activity; 
    String val = ""; 

    //@SuppressWarnings("unchecked") 
    public MyAdapter(Activity context, List<? extends Map<String, String>> tables, int resource, String[] from, 
      int[] to) { 
     super(context, tables, resource, from, to); 
     //this.tables = (List<Table>) tables; 
     activity = context; 
    } 

    public View getView(final int position, final View convertView, ViewGroup parent) { 
     View row = super.getView(position, convertView, parent); 
     if (row == null) 
     { 
      LayoutInflater inflater = (LayoutInflater) activity 
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      row = inflater.inflate(R.layout.reports_list, null); 
     }  

     final CheckBox cBox=(CheckBox)row.findViewById(R.id.cb1); 
     if(bulkflag) 
     { 
      cBox.setVisibility(View.VISIBLE); 
     } 
     else 
     { 
      cBox.setVisibility(View.GONE); 
     } 
     cBox.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 

       if(cBox.isChecked()) 
       { 
        selectedIds.add(recIdArr.get(reportslistview.getPositionForView(cBox))); 
        //System.out.println("position "+reportslistview.getPositionForView(cBox)); 
       } 
       else 
       { 
        selectedIds.remove(recIdArr.get(reportslistview.getPositionForView(cBox))); 
       } 
      } 
     }); 
     return row; 
    } 
} 

檢查====>

for(int i=0;i<selectedIds.size();i++) 
{ 
    System.out.println("delete multiple"+selectedIds.size()+" "+Integer.parseInt(selectedIds.get(i))); 
} 

聲明selectedIds作爲全局變量

+0

我應該在哪裏聲明這個數組「recIdArr」? – 2012-08-13 09:38:22

+0

它是一個arraylist,列表中的項目將被添加到列表視圖 – 2012-08-13 09:40:59

+0

@Ramkiran你能解釋什麼是reportlistview和bulkflag? – Ashwani 2012-11-19 11:17:59

1

您需要將OnClickListener添加到您的複選框(在您的適配器中)。這個監聽器將不得不隨時按住你想要刪除的文件的列表。

是這樣的:

選中=>添加到列表
未選中=>從列表中刪除

1
Listview list; 

ArrayAdapter<String> aa=new ArrayAdapter<String>this,android.R.layout.simple_list_item_multiple_choice,"Arraylist name"); 

list.setAdapter(aa); 
list.setOnItemClickListener(new OnItemClickListener() { 

     public void onItemClick(AdapterView<?> arg0, View arg1, 
       int arg2, long arg3) { 
    //code 
    } 
+1

閱讀問題很明顯 – 2012-12-27 09:48:59

2

很適合我的簡單解決方案:

像這樣,您可以通過使用已經爲ArrayAdapter存在的ArrayList來迭代ListView。

for(int i = 0; i < ArrayList.size();i++){ 

if((CheckBox)listView.getChildAt(i).findViewById(R.id.checkBox) != null){ 

    CheckBox cBox=(CheckBox)listView.getChildAt(i).findViewById(R.id.checkBox); 

    if(cBox.isChecked()){ 
     Log.e("CB", ""+i); 
    } 
} 
} 
相關問題