【发布时间】:2014-11-11 09:04:56
【问题描述】:
当我为我的 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;
}
【问题讨论】:
-
尝试使用
getBooleanExtra和getIntExtra -
试试这个方法:intent.getBooleanExtra("isDeleted",false);
-
提示:每当您调用
getExtras()时,它都会创建额外包的克隆,因此此操作相当昂贵。只调用一次getExtras(),或者最好只使用getBooleanExtra()、getIntExtra()等。 -
你的
switch case中的变量intent在哪里被初始化?
标签: android android-intent boolean