gpt4 book ai didi

java - 外部 Activity 的 startactivityforresult() ?

转载 作者:行者123 更新时间:2023-12-01 15:25:33 25 4
gpt4 key购买 nike

我有两个应用程序,A和B,这两个应用程序都是我制作的,但它们位于不同的包中。我想从 Activity B 中提取一些数据到 Activity A。

为此,我使用ActivityA.startactivityforresult(ActivityB)

这工作正常,直到我需要从 ActivityB 检索数据,然后我开始为 getExtra() 调用获取 NullpointerExceptions。

Activity A:

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"));
}

Activity B:

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();
}
}
<小时/>

输出:测试:null

我做错了什么,还是根本不允许这样做?

更新

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"));

最佳答案

我还没有尝试过在不同应用程序中使用 Activity,但 Activity A 需要覆盖

onActivityResult(int requestCode, int resultCode, Intent data)

还有

setResult

采用 ResultCode 而不是 RequestCode,尽管这不会对您发布的代码 fragment 产生影响。

编辑:

androidmanifest.xml

    <activity
android:name="ActivityB"
<intent-filter>
<action android:name='retrieveData'/>
</intent-filter>
</activity>

关于java - 外部 Activity 的 startactivityforresult() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10212419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com