我的复选框有很大问题。我的MainAdapter(不是Activity)中有chceckbox,我正在检查它,然后点击按钮进入下一个活动。然后我从DefaultActivity返回到MainActivity,我希望取消选中复选框。我还添加了复选框的逻辑在ViewHolder中的适配器中,如下所示:
class ViewHolder {
TextView tv1;
TextView tvC;
ImageView ivT;
CheckBox chb;
}
并且所有逻辑都在getView方法中。如果您不理解某些内容并且您希望我提供帮助。只要问你想得到什么。
答案 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时取消选中