当我为我的isDeleted布尔值调用getExtras.getBoolean(key)时,它会将自己设置为false,即使我传入true也是如此。有关为何发生这种情况的任何见解?我已尝试了很多其他方法,但未能成功保持布尔值为TRUE。
其他活动:
public void deleteWorkout(View view)
{
intent.putExtra("listPosition", intent.getExtras().getInt("position"));
intent.putExtra("isDeleted", true);
setResult(RESULT_OK, intent);
finish();
}
主要活动:
case(List): {
if(resCode == Activity.RESULT_OK)
{
boolean isDeleted = intent.getExtras().getBoolean("isDeleted");
int listPosition = intent.getExtras().getInt("listPosition");
if(isDeleted)
{
adapter.remove(workoutList.get(listPosition));
adapter.notifyDataSetChanged();
}
}
}
default:
break;
}
答案 0 :(得分:6)
有两种方式将一项活动传递给另一项活动。
1.将数据添加到意图中。
如何放:
intent.putExtra("listPosition", intent.getExtras().getInt("position"));
intent.putExtra("isDeleted", true);
如何获得:
int listPosition = getIntent().getIntExtra("listPosition",0);
boolean isDeleted = getIntent().getBooleanExtra("isDeleted",false);
2.添加数据以捆绑并将包添加到意图。
如何放:
Bundle bundle = new Bundle();
bundle.putExtra("listPosition", intent.getExtras().getInt("position"));
bundle.putExtra("isDeleted", true);
intent.putExtras(bundle)
如何获得:
int listPosition = getIntent().getExtras().getInt("listPosition",0);
boolean isDeleted = getIntent().getExtras().getBoolean("isDeleted",false);
答案 1 :(得分:3)
有两种方法可以解决这个问题,并了解为什么可能在将来再次为您节省头痛。
putExtras
与putExtra
不同。
那有什么区别?
putExtras
期望传递一个包。使用此方法时,您需要使用以下方法撤回数据:
getIntent().getExtras().getBoolean("isDeleted");
putExtra期望(在您的情况下)字符串名称和布尔值。使用此方法时,您需要使用以下方法撤回数据:
getIntent.getBooleanExtra("isDeleted", false); // false is the default
你正在使用两者的混合,这意味着你试图从你实际没有设置的束中获取一个布尔值,所以它使用的是默认值(false)。