2010-02-14 2 views
0

У меня есть ListActivity, и я использую пользовательский CursorAdapter.Получить проверенные элементы CheckBoxes в Listview

В каждом элементе списка я получил также флажок ...

Теперь у меня есть в моем списке экране кнопки завивки, при нажатии на него,

Он должен найти все галочки которые «проверены» и выполняют некоторые операции над элементом, который установлен флажком.

Как я могу получить все проверенные?

Я сделал фокусируемый ложь, так что я могу использовать OnClickListener, но я не знаю, как дальше то это .. Спасибо,

некоторый код: Это в моем классе ListActivity:

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

и это мой пользовательский курсор адаптер класса:

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

     } 
+0

, пожалуйста, напишите свой код ... –

+0

Я не знаю, что я должен публиковать, так как он потерял необходимый код между ними, пожалуйста, скажите мне, что вы не поняли? все, что у меня есть, это listview, в каждом элементе я также получил флажок, listview привязан к базе данных через CursorAdapter. Я хочу, чтобы нажимал кнопку, чтобы получить все элементы, которые задают статус флажка CHECKED. спасибо, Рэй. – rayman

ответ

0
 //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

YOUR_DB_INTEX_HERE = ?? – rayman

+0

, а если и означает, индекс базы данных, я не уверен, что я должен там положить? как мой статус флажка связан с моей базой данных? – rayman

+0

если кто-нибудь может помочь? я действительно застрял здесь .. не могу понять, как я должен продолжать. – rayman

Смежные вопросы