当我为我的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;
}
解决方法:
有两种方法可以解决这个问题,并了解为什么可能在将来再次为您节省头痛.
putExtras与putExtra不同.
那有什么区别?
putExtras将期望传入一个bundle.使用此方法时,您需要使用以下方法将数据拉回:
getIntent().getExtras().getBoolean("isDeleted");
putExtra将期望(在您的情况下)字符串名称和布尔值.使用此方法时,您需要使用以下方法将数据拉回:
getIntent.getBooleanExtra("isDeleted", false); // false is the default
你正在使用两者的混合,这意味着你试图从你实际没有设置的束中获取一个布尔值,所以它使用默认值(false).
标签:android,boolean,android-intent
来源: https://codeday.me/bug/20190725/1529366.html