我有3个活动A,B和C.活动A包含一个项目列表。当我们单击活动A中的一行时,它会调用活动B来描述该项目。在活动B中,我有另一个清单。当我点击其中的一行时,它会调用活动C.
我必须将id
字段从A传递到B然后传递给C.
假设我有值
Small
Medium
活动A中的。
我从这里点击Small
然后转到活动B然后转到C.一切正常。在整个活动中,id
通过也是正确的。
现在从C,我点击手机的后退按钮然后转到B然后点击手机的后退按钮并转到A.
现在我点击列表中的Medium
。 id
已正确传递给B.但是当我到达C时,它不会转到onCreate()
而是onResume()
。在那里,我获得了id
作为Small
的旧值{{1}}。但我想要正确的身份证明。这个问题可能是什么原因?有谁可以帮忙。提前谢谢。
答案 0 :(得分:1)
我认为..当你在处理活动C中的activity
按钮时,你必须完成back
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
finish();
}
return super.onKeyDown(keyCode, event);
}
答案 1 :(得分:0)
出现问题是因为活动C不会被杀死,只会被暂停。
我还没有测试过,但我相当确定如果你通过Intent.putExtra传递数据,你应该得到你正在寻找的行为(我真诚地希望不同的额外数据会导致新的实例推出)
希望这有帮助,
Phil Lello
答案 2 :(得分:0)
根据我在android活动中的知识,当您按下后退按钮时(默认情况下)会被销毁。 我怀疑在活动之间传递数据时可能会出现问题。 但是如果你填写它仍然与活动有关并没有被破坏。您可以在onPause()方法中完成活动C.它将解决您的问题。