在ListView中检索已检查的项目

时间:2013-07-19 08:54:13

标签: android listview android-checkbox

我有一个包含多项选择列表的列表视图。列表由一些数据填充。我已经实现了删除已检查项目的代码。所以我想知道是否有可能在删除之前获取带有标题的选定和未选定项目的列表?

以下是删除已检查项目的代码:

  public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button btnDel = (Button) findViewById(R.id.btnDel);

    adapter = new ArrayAdapter<String>(this,Android.R.layout.simple_list_item_multiple_choice, list);

    OnClickListener listenerDel = new OnClickListener() {
        @Override
        public void onClick(View v) {               
            SparseBooleanArray checkedItemPositions = getListView().getCheckedItemPositions();
            int itemCount = getListView().getCount();

            for(int i=itemCount-1; i >= 0; i--){
                if(checkedItemPositions.get(i)){                        
                    adapter.remove(list.get(i));
                }
            }   
            checkedItemPositions.clear();
            adapter.notifyDataSetChanged();
        }
    };              

    btnDel.setOnClickListener(listenerDel);    
    setListAdapter(adapter);
}

1 个答案:

答案 0 :(得分:1)

是的,有可能。 只需嵌入此代码;

 ArrayList<Object> myCheckedItems = new ArrayList<Object>();

 OnClickListener listenerDel = new OnClickListener() {
    @Override
    public void onClick(View v) {               
        SparseBooleanArray checkedItemPositions = getListView().getCheckedItemPositions();
        int itemCount = getListView().getCount();

        for(int i=itemCount-1; i >= 0; i--){
            if(checkedItemPositions.get(i)){ 
                myCheckedItems.add((list.get(i));                       
                adapter.remove(list.get(i));
            }
        }   
        checkedItemPositions.clear();
        adapter.notifyDataSetChanged();
    }
};