не могу понять о cursoradapter и флажок в списке - PullRequest
0 голосов
/ 21 октября 2011

Я делаю просмотр списка, содержащий флажок. Я ссылаюсь на код и пытаюсь понять, но не могу понять одну часть.

адрес ссылки: Android: CursorAdapter, ListView и CheckBox

в приведенном ниже коде, есть два флажка. 1. final CheckBox cBox = (CheckBox) inView.findViewById (R.id.bcheck); 2. CheckBox cb = (CheckBox) v.findViewById (R.id.your_checkbox_id);

Я понимаю первый, который получается из макета инфлятора. но во-вторых, я не понимаю, откуда происходит идентификатор CheckBox (R.id.your_checkbox_id) .. Кто-нибудь может помочь мне понять?

спасибо!

 public class MyDataAdapter extends SimpleCursorAdapter { 
    private Cursor c; 
    private Context context; 
    private ArrayList<String> list = new ArrayList<String>(); 
    private ArrayList<Boolean> itemChecked = new ArrayList<Boolean>(); 

    // itemChecked will store the position of the checked items. 

    public MyDataAdapter(Context context, int layout, Cursor c, String[] from, 
        int[] to) { 
            super(context, layout, c, from, to); 
            this.c = c; 
            this.context = context; 

            for (int i = 0; i < this.getCount(); i++) { 
               itemChecked.add(i, false); // initializes all items value with false 
            } 
    } 

    public View getView(final int pos, View inView, ViewGroup parent) { 

        if (inView == null) { 
           LayoutInflater inflater = (LayoutInflater) context 
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
           inView = inflater.inflate(R.layout.your_layout_file, null); 
        } 

        final CheckBox cBox = (CheckBox) inView.findViewById(R.id.bcheck); // your 
        // CheckBox 
        cBox.setOnClickListener(new OnClickListener() { 

           public void onClick(View v) { 

              CheckBox cb = (CheckBox) v.findViewById(R.id.your_checkbox_id);   //what is this checkbox? 
              if(cb.isChecked()) { 
                  itemChecked.set(pos, true); 
                  // do some operations here 
              }   
              else if (!cb.isChecked()) { 
                  itemChecked.set(pos, false); 
                  // do some operations here 
              }
          }
      }
   }

1 Ответ

1 голос
/ 21 октября 2011

Я думаю, это просто знать, какой флажок отмечен. Он используется для сохранения правильного статуса (отмечен или не отмечен) флажок, который вы нажали.попробуйте это, но я должен работать, я думаю!)

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

  public View getView(final int pos, View inView, ViewGroup parent) { 

        if (inView == null) { 
           LayoutInflater inflater = (LayoutInflater) context 
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
           inView = inflater.inflate(R.layout.your_layout_file, null); 
        } 

        final CheckBox cBox = (CheckBox) inView.findViewById(R.id.bcheck); // your 
        // CheckBox 
        cBox.setOnClickListener(new OnClickListener() { 

           public void onClick(View v) { 

              if(cBox.isChecked()) { 
                  itemChecked.set(pos, true); 
                  // do some operations here 
              }   
              else{ 
                  itemChecked.set(pos, false); 
                  // do some operations here 
              }
          }
      }
   }
...