我试图通过onResume来实现它,但它没有用,我也尝试通过startActivityForResult实现它,但仍然没有。我想让它变得尽可能简单。我应该在OnResume中做些别的事吗?所有的答案,建议,线索都很好。如果您不知道如何操作,请弹出线程。感谢您的时间。
在我的适配器中,我上课了:
class ViewHolder {
TextView tvNazwaT;
TextView tvCenaT;
ImageView ivTowar;
CheckBox chb_czy_zamowic;
}
在checkbox
点击后,我想要更改我的button
(点击原因返回主activity
,checkbox
只显示在我的网格视图中)。
复选框的所有逻辑形式适配器(实际上在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
答案 0 :(得分:0)
我猜您在网格适配器下有一些底层数据。当您离开活动时,请记住活动范围中某个变量中的已检查位置,或者只是在数据结构中将其标记为已选中。当您从其他活动回来时,撤消该更改并在适配器上调用notifyDataSetChanged()
。