0

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

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

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

在此处输入图像描述

谢谢你。

4

2 回答 2

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;

      }
于 2013-06-02T07:26:22.553 回答
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();
        }

      }
    });
于 2013-06-02T07:19:04.690 回答