0
我有两个应用程序,A和B,这两个应用程序都是由我制作的,但它们位于不同的包中。我想从我的活动B中提取一些数据到我的活动A.startactivityforresult()对外部活动?
对此,我使用ActivityA.startactivityforresult(ActivityB)
。
这工作正常,直到我需要从ActivityB中检索我的数据,然后我开始为我的getExtra()调用获取NullpointerExceptions。
ActivityA:
protected void someMethod()
{
Intent intent = getPackageManager().getLaunchIntentForPackage("some.package.app");
intent.putExtra("action", "retrieveData");
startActivityForResult(intent, 7854);
}
protected void onActivityResult (int requestCode, int resultCode, Intent intent)
{
Log.d(TAG, "test: " + intent.getExtras().getString("test"));
}
ActivityB:
protected void onResume()
{
if (getIntent().getExtras() != null && getIntent().getExtras().getString("action").equals("retrieveData"))
{
Intent intent = getIntent();
intent.putExtra("test", "This is a test response");
setResult(7854, intent);
finish();
}
}
OUTPUT: test: null
难道我做错了什么,或者这根本不允许的?
UPDATE
04-18 18:28:34.908: E/AndroidRuntime(15711): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=7854, result=0, data=null} to activity {dk.rasive.testA/dk.rasive.testA.TestActivity}: java.lang.NullPointerException
04-18 18:32:48.892: E/AndroidRuntime(15801): at dk.rasive.testA.TestActivity.onActivityResult(TestActivity.java:245)
245线包含此代码
Log.d(TAG, "test: " + intent.getExtras().getString("test"));
我刚刚剥离出来的@Override注解readability's缘故。 – Rasive 2012-04-18 16:01:06
活动必须重写'onActivityResult'。我没有提到任何关于你错过@Override的事情。 – techiServices 2012-04-18 16:04:26
阿哈我看到:)这部分解决了问题。现在我得到一个:'失败的结果ResultInfo {谁=空,请求= 7854,结果= 0,数据=空}运行时异常虽然。 – Rasive 2012-04-18 16:15:45