Rad*_*uan 1 android android-intent android-activity
我正在尝试将多个数据项合并为一个Intent:
if (strActStat == "Sedentary") {
// passactStat.putString("keySedentary", strActStat);
// passSeden.putString("keyMale", gender);
i = new Intent(CalorieTrackerTargetWeight.this, TargetWeightResults.class);
i.putExtra("keyGender", gender);
i.putExtra("keyAct", strActStat);
//i.putExtra("keyAct", strActStat);
startActivity(i);
}
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?为什么我不能在一个中传递多个项目Intent?
你无法比较字符串==.
if (strActStat.equals("Sedentary")) { // should work
Run Code Online (Sandbox Code Playgroud)
编辑:
@Hesam写了一个非常详细的答案,但他的解决方案并不真正可用.而不是使用ArrayList<String>你应该坚持putExtra(key, value).为什么?那么与ArrayList解决方案相比有一些优势:
put()的顺序与get().考虑以下情况:您经常发送3个值,但在某些情况下,您不希望发送第二个值.当您使用ArrayList解决方案时,您最终将null作为第二个值发送,以确保第三个值将保留在他的位置.这是非常令人困惑的编码!相反,您应该只发送两个值,当接收活动尝试接收第二个值时,它可以像它想要的那样处理返回的空值...例如将其替换为默认值.key应该在接收活动中声明为常量.因此,您始终可以通过查看此常量来了解活动可以处理的意图数据.这是很好的编程!希望这有助于澄清意图用法.
| 归档时间: |
|
| 查看次数: |
1857 次 |
| 最近记录: |