如何取消选中我的复选框

时间:2014-02-14 19:25:19

标签: android checkbox

我的复选框有很大问题。我的MainAdapter(不是Activity)中有chceckbox,我正在检查它,然后点击按钮进入下一个活动。然后我从DefaultActivity返回到MainActivity,我希望取消选中复选框。我还添加了复选框的逻辑在ViewHolder中的适配器中,如下所示:

class ViewHolder {
    TextView tv1;
    TextView tvC;
    ImageView ivT;
    CheckBox chb;
}

并且所有逻辑都在getView方法中。如果您不理解某些内容并且您希望我提供帮助。只要问你想得到什么。

3 个答案:

答案 0 :(得分:1)

当您开始新的Activity时,请拨打startActivityForResult()。这将在您关闭第二个活动后调用回调方法,这样您就可以确保在finish()新开启的Activity后输入该方法。

进入那里后,只需按ID查找您的视图,然后取消选中即可。这是一个示例代码:

final Intent intent = new Intent(YourActivityThatContainsListViewDefinition.class, YourNewActivity.class);
startActivityForResult(intent, 1);

之后,只需覆盖onActivityResult()方法。

protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
  switch (requestCode) {
    case 1:
      CheckBox cb = (CheckBox) findViewById(R.id.your_checkbox_id);
      cb.setChecked(false);

      break;
  }
}

----编辑----

所有这些代码都在Adapter实现之外 - 所以,如果你查看我提供的代码,在Intent中,第一个参数是Activity的上下文打开第二个。这意味着这两个覆盖,您必须在调用另一个的Activity中实现它们(在您的情况下,MainActivity)。

在您的第二个Activity(DefaultActivity)中,您无需执行任何操作,只需通知第一个Activity(MainActivity)它必须取消CheckBox。为此,当您想关闭DefaultActivity时,您只需执行此类操作:

Intent returnIntent = new Intent();
setResult(RESULT_OK, returnIntent);
finish();

这样,您就会通知MainActivity它应该触发onActivityResult()以及取消选中CheckBox的地方。

答案 1 :(得分:0)

取消选中您的复选框:

chb.setChecked(false);

答案 2 :(得分:0)

如果在适配器中,您可以在调用getView()时检索它...

e.g。

holder.chb.setChecked(假);

使用此复选框将在每次通知或再次创建de adapter时取消选中