作者MosilW (Mosil)
看板AndroidDev
标题Re: [问题] 回上一页,程式出错
时间Wed Jan 1 18:37:07 2014
: 另外一页的返回
: public boolean onKeyDown(int keyCode, KeyEvent event){
: if (keyCode==KeyEvent.KEYCODE_BACK){
: Intent i = new Intent(file_b.this, file_a.class);
: startActivityForResult(i, 0);
: finish();
: }
: return false;
: }
只留本段程式码
先请问个问题
为什麽这段的返回要用 Intent 然後去 startActivityForResult
再将自己给 finish 掉
如果直是单纯的要返回到上一个 activity,那就单纯的 finish 掉自己就好啦?
若是要传直回上一个 activity,那请把回传值放到 bundle 里
设定 setResult,再 finish 即可,大致如下
if(keyCode == KeyEvent.KEYCODE_BACK) {
Bundle data = new Bundle();
data.putString("msgc_value", "your msessage");
setResult(resultCode, data);
finish();
}
然後让 file_a.class 那个 actvity 的 onActivityResult 去接值
最後,解释为何程式会爆掉
因为您用了 startActivityForResult
这个动作是 "create" file_a.class 这个 activity
所以,生命周期会从 activity 的 onCreate 开始
而在 onCreate 里又在 getIntent 的取值处没有防错
在这个状况下的 "一定" 没有值传过去,取值一定会为空,所以一定会爆掉
以上,希望能解决您的问题 :D
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.235.248.54
1F:推 mickeyboy:感谢 01/01 20:41