我有一個ListView
與CheckBox
。我想從ListView
中獲得所選項目,例如MyFiles應用程序,我們選擇CheckBox
的多個文件,然後單擊單個刪除按鈕以刪除所有文件。從複選框中獲取ListView的檢查項目
3
A
回答
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
作爲全局變量
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);
}
}
}
相關問題
- 1. 使用複選框獲取已檢查的listview項目windows store app c#
- 2. listview複選框選中的行項目
- 3. Android listview檢查多個項目,同時選擇複選框
- 4. Android:從ListView中獲取所選項目
- 5. 獲取ListView項目被檢查
- 6. listview中的Android複選框不檢查
- 7. 無法從ListView中獲取實際檢查的項目
- 8. 帶有複選框的Android ListView在檢查時鬆動檢查的項目
- 9. Android從ListView獲取複選框信息
- 10. 從ListView獲取複選框值
- 11. 獲取選定的複選框項目從列表框mvvm
- 12. 獲取複選框中dataGridView1檢查C#
- 13. 項目的複選框取消選中獲得滾動時的ListView
- 14. 檢查listview內的複選框的值
- 15. 檢查Django中選中的複選框的項目
- 16. 獲取SparseBooleanArray.size()從ListView中獲取檢查項時始終爲0
- 17. Blackberry - 用複選框從列表中檢查項目
- 18. wpf listview標題中的複選框沒有檢查所有項目
- 19. 在複選框中獲取自定義ListView中的多個項目
- 20. 無法獲取複選框來檢查並取消選中其他複選框
- 21. 檢查選定項目的ListView
- 22. 從ListView中的項目獲取位置
- 23. 如何從android listview中檢查項目?
- 24. 獲取ListView中選定項目
- 25. 如何檢查/勾選項目渲染器中的複選框?
- 26. 如何獲取通過複選框檢查的Listview中的edittext值?
- 27. 複選框的Android ListView總是檢查第一個項目,如果有任何項目被選中
- 28. 使用MultipleChoice獲取Listview中未檢查的項目
- 29. 從選中複選框上的選擇選項獲取值
- 30. 檢查複選框時未從網格表中獲取值?
我應該在哪裏聲明這個數組「recIdArr」? – 2012-08-13 09:38:22
它是一個arraylist,列表中的項目將被添加到列表視圖 – 2012-08-13 09:40:59
@Ramkiran你能解釋什麼是reportlistview和bulkflag? – Ashwani 2012-11-19 11:17:59