Josef
Josef

Reputation: 2726

Retrieve checked items in ListView

I have a listview with multiple choice list. List is filled by some data. I have implemented code for deleting checked items. So I'm wondering is it possible to get list of selected and non-selected items with their captions before deleting?

Here is the code for deleting checked items:

  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);
}

Upvotes: 0

Views: 596

Answers (1)

Abhishek Shukla
Abhishek Shukla

Reputation: 1242

Yes, it is possible. Just embed this code;

 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();
    }
};            

Upvotes: 1

Related Questions