如何从此列表视图中获取复选框(已选中/未选中)的状态?

时间:2013-06-02 07:15:20

标签: android listview android-listview listviewitem

如何在列表加载后从此列表视图中获取复选框(已选中/未选中)的状态?

我知道如何通过覆盖适配器的getview方法来检查列表的加载时间,但事实并非如此。

我需要的是在列表加载后获取状态,用户检查/取消选中列表中的项目并点击菜单中的备份或删除按钮。

enter image description here

谢谢。

2 个答案:

答案 0 :(得分:0)

你的问题太模糊了.. 我只能回答你提供的信息量就是把它放在你的适配器中:

chkBox = (CheckBox) findViewById(R.id.chkBox);

    chkIos.setOnClickListener(new OnClickListener() {

      @Override
      public void onClick(View v) {
                //is chkBox checked?
        if (((CheckBox) v).isChecked()) {
            Toast.makeText(MyAndroidAppActivity.this,
               "result:", Toast.LENGTH_LONG).show();
        }

      }
    });

答案 1 :(得分:0)

你可以尝试那样

 @Override
      public View getView(int position, View convertView, ViewGroup parent) {

       ViewHolder holder = null;
       Log.v("ConvertView", String.valueOf(position));

       if (convertView == null) {
       LayoutInflater vi = (LayoutInflater)getSystemService(
         Context.LAYOUT_INFLATER_SERVICE);
       convertView = vi.inflate(R.layout.country_info, null);

       holder = new ViewHolder();
       holder.code = (TextView) convertView.findViewById(R.id.code);
       holder.name = (CheckBox) convertView.findViewById(R.id.checkBox1);
       convertView.setTag(holder);

        holder.name.setOnClickListener( new View.OnClickListener() {
         public void onClick(View v) {
          CheckBox cb = (CheckBox) v ;
          Country country = (Country) cb.getTag();
          Toast.makeText(getApplicationContext(), "Clicked on Checkbox: " + cb.getText() +
           " is " + cb.isChecked(),Toast.LENGTH_LONG).show();
          country.setSelected(cb.isChecked());
         }
        });
       }
       else {
        holder = (ViewHolder) convertView.getTag();
       }

       Country country = countryList.get(position);
       holder.code.setText(" (" +  country.getCode() + ")");
       holder.name.setText(country.getName());
       holder.name.setChecked(country.isSelected());
       holder.name.setTag(country);

       return convertView;

      }