开发者

Retrieve checked CheckBoxes's items in Listview

I've got ListActivity and I am using custom CursorAdapter.

In each item of the list I've got also checkbox...

Now I have in my list screen a perm button, when you press on it,

It should find all the checkboxes which are 'checked' and do some operations on the item which it's checkbox is 'checked'.

How can I retrieve all the checked ones?

I've 开发者_开发技巧done focusable:false, so I can use OnClickListener, but I don't know how farther then this.. Thanks,

some code: This is in my ListActivity class:

 final String columns[] = new String[] { MyUsers.User._ID,
                MyUsers.User.MSG, MyUsers.User.LOCATION };

          int[] to = new int[] { R.id.toptext,   R.id.bottomtext,R.id.ChkBox,
                R.id.Location};

          Uri myUri = Uri.parse("content://com.idan.datastorageprovider/users");

          Cursor cursor = getContentResolver().query(myUri, columns, null, null, null);  

          startManagingCursor(cursor);  

           ListCursorAdapter myCursorAdapter=new ListCursorAdapter(this,R.layout.listitem, cursor, columns, to);

           this.setListAdapter(myCursorAdapter);

and this is my Custom Cursor adapter class:

public class ListCursorAdapter extends SimpleCursorAdapter

{

         private Context context;
    private int layout;

    public ListCursorAdapter(Context context, int layout, Cursor c,
            String[] from, int[] to)
    {
        super(context, layout, c, from, to);

        this.context = context;

        this.layout = layout;

    }

    @Override
    public View newView(Context context, Cursor cursor, ViewGroup parent)
    {

        Cursor c = getCursor();

        final LayoutInflater inflater = LayoutInflater.from(context);
        View v = inflater.inflate(layout, parent, false);
                   return v;
          }

@Override

    public void bindView(View v, Context context, Cursor c)
    {
        TextView topText = (TextView) v.findViewById(R.id.toptext);
        if (topText != null)
        {
            topText.setText("");
        }

        int nameCol = c.getColumnIndex(MyUsers.User.MSG);
        String name = c.getString(nameCol);
        TextView buttomTxt = (TextView) v.findViewById(R.id.bottomtext);
        if (buttomTxt != null)
        {
            buttomTxt.setText("Message: "+name);
        }

        nameCol = c.getColumnIndex(MyUsers.User.LOCATION);
        name = c.getString(nameCol);
        TextView location = (TextView) v.findViewById(R.id.Location);
        if (locationLinkTxt != null)
        {
            locationLinkTxt.setText(name);
        }

        }


        //Modify to meet your needs
        String[] from = new String[]{ YourDbAdapter.KEY_WORDS_ROWID, YourDbAdapter.KEY_WORDS_ROWID};
        int[] to = new int[]{ R.id.row_item_checkbox};

        mAdapter = new SimpleCursorAdapter(this, R.layout.row_item_with_checkbox, yourDbCursor, from, to);


      mAdapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {

       @Override
       public boolean setViewValue(View view, Cursor cursor, int columnIndex) {


        if(view.getId() == R.id.myCheckbox )
        { 

         CheckBox cb = (CheckBox) view;
         cb.setOnClickListener(new OnClickListener() {

          @Override
          public void onClick(View v) {

           final long id = cursor.getLong(columnIndex); //Your row id
                               //You can do the necessary work here such as adding to an List or somehting

          }
         });


         return true; 
        } 

        return false;
       }


      });
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜