我正在尝试将编辑列表从活动2返回到活动1.
这是我的代码:
public voID ListDataSms(ArrayList<MySmsLog> stringList) { Bundle bundle = new Bundle(); bundle.putParcelableArrayList(NUMBER_List, stringList); Intent i = new Intent(this, MyCommonListActivity.class); i.putExtra(WHO_INT, SMS_LOG); i.putExtras(bundle); startActivityForResult(i, SMS_LOG);}@OverrIDeprotected voID onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == SMS_LOG) { if (resultCode == RESulT_OK) { ArrayList<MySmsLog> mySmsLogs = (data.getParcelableArrayListExtra(PICK_SMS_LOG)); mainLog.setSmsLog(mySmsLogs); } if (resultCode == RESulT_CANCELED) { // do something if there is no result } }}@OverrIDepublic voID onBackpressed() { super.onBackpressed(); Intent intent = new Intent(); Bundle result = new Bundle(); switch (who) { case SMS_LOG: result.putParcelableArrayList(MainActivity.PICK_SMS_LOG, mySmsLogList); break; } setResult(RESulT_OK, intent); intent.putExtras(result);}
但我永远不会得到setSmsLog,因为resultCode始终为0.
我尝试了Android onActivityResult is always 0但没有结果.
即使我将条件更改为if(resultCode == RESulT_CANCELED){do smth}程序以NullPointerException结束.
解决方法:
假设上面显示的代码中的onBackpressed()来自MyCommonListActivity,那么调用setResult()为时已晚.充其量,如果你将super.onBackpressed()称为最后一件事,而不是第一件事,你的代码可能会有效.典型的解决方案是在用户点击ListVIEw中的某些内容时调用setResult()和finish(),或者选择要使用的特定项,而不是等到用户按下BACK.
总结以上是内存溢出为你收集整理的android – startActivityForResult结果代码始终为0全部内容,希望文章能够帮你解决android – startActivityForResult结果代码始终为0所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)