如何从其他活动返回时取消选中复选框

时间:2014-02-14 23:31:01

标签: java android checkbox android-activity return

我试图通过onResume来实现它,但它没有用,我也尝试通过startActivityForResult实现它,但仍然没有。我想让它变得尽可能简单。我应该在OnResume中做些别的事吗?所有的答案,建议,线索都很好。如果您不知道如何操作,请弹出线程。感谢您的时间。

在我的适配器中,我上课了:

class ViewHolder {
TextView tvNazwaT;
TextView tvCenaT;
ImageView ivTowar;
CheckBox chb_czy_zamowic;
 }

checkbox点击后,我想要更改我的button(点击原因返回主activitycheckbox只显示在我的网格视图中)。

复选框的所有逻辑形式适配器(实际上在getView方法中)都在这里:

view.chb_czy_zamowic
.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(
                                                                                           final CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
if (buttonView.isChecked()) {
display dialog; }

以下是NextActivity的返回按钮:

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

在我的MainActivity中,我尝试过onResume方法,但我无法以任何已知的方式访问它。

protected void onResume() {
super.onResume();
MainActivity.lista_wybranych_towarow.clear();
if (MainActivity.lista_wybranych_towarow.isEmpty()) {
b_zatwierdz.setVisibility(View.INVISIBLE);

}

所以我在我的适配器中尝试了这个:

convertView.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
final Intent intent = 
new Intent(getContext(),  Zatwierdz.class);
context.startActivityForResult(intent,1);
}


});

在我的MainActivity中:

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

break;
}
}

它也没有成功。

这是我的所有代码:

**MainActivity:** http://pastebin.com/DUz6GWbw  
**Adapter:** http://pastebin.com/jHWqBaf0   
**DefaultActivity:** http://pastebin.com/1VgEAZhZ

1 个答案:

答案 0 :(得分:0)

我猜您在网格适配器下有一些底层数据。当您离开活动时,请记住活动范围中某个变量中的已检查位置,或者只是在数据结构中将其标记为已选中。当您从其他活动回来时,撤消该更改并在适配器上调用notifyDataSetChanged()