【问题标题】:CheckBox inside a View inside a ListViewListView 内的 View 内的 CheckBox
【发布时间】:2012-06-08 07:59:59
【问题描述】:

这是我的方法:

我有一个自定义 ListView,其中包含一个包含两种不同视图的自定义适配器。其中一个在每个视图中都有一个 CheckBox。

我只想在单击其中一个 CheckBox 时通知 Activity,并传递一个布尔值:如果选中任何一个框,则为 true,否则为 false。

我该怎么做?

我只需要理论上的答案,而不是代码。

非常感谢。

【问题讨论】:

  • 对每个使用 OnCheckedChangeListener

标签: android android-listview adapter


【解决方案1】:

1-通过checkedChangeListene实现activity并覆盖activity中的代码

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
    {
        if ( isChecked )
        {

               Object obj = buttonView.getTag();
            // perform logic
        }

    }

2- 在自定义适配器构造函数中传递活动。

3- 在 getView 中设置

   CheckBox  chkBx = (CheckBox ) findViewById( R.id.repeat_checkbox );
    if(null!=chkBx ){
    chkBx.setOnCheckedChangeListener(mActivty);
    chkBx.setTag(position);
   }

【讨论】:

  • 好的,我该如何检查我检查了哪个框?我使用 BitSet 来记录复选框,但我需要持有该框的视图的位置。 onCheckedChanged 显然没有实现这一点。我应该使用自定义侦听器还是什么?
  • 可以将getView中的位置设置为每个CheckBox的标签,就像更新的代码一样......
  • 对不起,我不明白。你能解释一下吗?
  • 您需要单击复选框的列表视图中的位置,因此我使用每个 CheckBox 设置位置,在 onCheckedChanged 中您将获得此 CheckBox,然后您可以使用标签返回该位置
  • 我完成了我想做的事情。非常感谢,您的帮助非常有用!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-08
  • 1970-01-01
  • 1970-01-01
  • 2016-03-26
  • 2013-07-25
相关资源
最近更新 更多