Java 如何在从其他活动返回时取消选中复选框
我试着在简历上写,但没有成功,我也试着在startActivityForResult上写,但仍然一无所获。我想让它尽可能简单。我应该在简历中做些别的事情吗?所有的答案、建议、线索都会来的。如果你不知道怎么做,弹出一个线程。谢谢你抽出时间 在我的适配器中,我有一个类:Java 如何在从其他活动返回时取消选中复选框,java,android,checkbox,android-activity,return,Java,Android,Checkbox,Android Activity,Return,我试着在简历上写,但没有成功,我也试着在startActivityForResult上写,但仍然一无所获。我想让它尽可能简单。我应该在简历中做些别的事情吗?所有的答案、建议、线索都会来的。如果你不知道怎么做,弹出一个线程。谢谢你抽出时间 在我的适配器中,我有一个类: class ViewHolder { TextView tvNazwaT; TextView tvCenaT; ImageView ivTowar; CheckBox chb_czy_zamowic; } 有一个我的复选框,我想
class ViewHolder {
TextView tvNazwaT;
TextView tvCenaT;
ImageView ivTowar;
CheckBox chb_czy_zamowic;
}
有一个我的复选框
,我想在单击按钮后更改它(单击原因返回主活动
,其中复选框
刚刚显示在我的gridview中)
复选框的所有逻辑形式适配器(实际上在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();
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;
}
}
在我的主要活动中,我尝试了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);
}
});
在我的主要活动中:
Intent returnIntent = new Intent();
setResult(RESULT_OK, returnIntent);
finish();
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
我猜您的网格适配器下有一些底层数据。离开“活动”时,请记住“活动范围”中某个变量的选中位置,或者在数据结构中将其标记为选中。当您从另一个活动返回时,撤消该更改并在适配器上调用notifyDataSetChanged()
。是,但问题是该复选框仅在适配器中可用