当我调用getExtras.getBoolean(key)方法获取isDeleted布尔值时,它总是将自己设置为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;
}
getBooleanExtra
和getIntExtra
。 - zozelfelfogetExtras()
都会创建一个 extras bundle 的克隆,因此这个操作相当昂贵。只需调用一次getExtras()
或更好的方法是直接使用getBooleanExtra()
、getIntExtra()
等。 - Yaroslav Mytkalykswitch case
中的变量intent
在哪里被初始化了? - David Wasser