当前位置: 首页 > 知识库问答 >
问题:

如何将字符串直接“铸造”到Intent?

东郭昌胤
2023-03-14

我做了一个活动,从已安装的应用程序中选择一个应用程序,获取所选应用程序的启动意图,并将该意图传递回启动活动的用户

Intent intent = packageManager
                .getLaunchIntentForPackage(app.packageName);

        if (null != intent) {
            Intent data = new Intent();
            data.setData(Uri.parse(intent.toString()));
            setResult(RESULT_OK, data);
            finish();
        }

启动活动的OnActivity结果:

public void onActivityResult(int requestCode, int resultCode, Intent data){
    if (requestCode == request_Code){
        if (resultCode == RESULT_OK){                   
            intent = data.getData().toString();     
            startActivity(new Intent(intent));
        }

我从Logcat中提取了intent字符串和intent内部startActivity,我得到了:
intentString:intent{act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]flg=0x10000000 pkg=com.android.providers.downloads.ui cmp=com.android.providers.downloads.ui/.downloadsltab}
Intentinside startActivity:Intent{act=Intent{act=android.Intent.action.MAIN cat=[android.Intent.category.LAUNCHER]flg=0x10000000 pkg=com.android.providers.downloads.ui cmp=com.android.providers.downloads.ui/.downloadsisttab}
(我的应用程序因为这个错误的意图而崩溃)
如你所见,我传递给起始活动的字符串是我需要的意图本身(在字符串中)
那么,我是否可以在没有意图构造函数的情况下将该字符串设置为意图?或者是一种直接将意图传递给开始活动的方式

共有2个答案

万俟招
2023-03-14

看起来你把事情弄得“太复杂了”。。。您试图使用字符串来启动活动,而不是意图。相反,只需传递你想要使用的意图。例如,尝试以下方法:

Intent intent = packageManager
            .getLaunchIntentForPackage(app.packageName);

    if (null != intent) {
        setResult(RESULT_OK, intent);
        finish();
    }

然后这样做:

public void onActivityResult(int requestCode, int resultCode, Intent data){
    if (requestCode == request_Code){
        if (resultCode == RESULT_OK){                   
            startActivity(data);
        }
    }
}
松增
2023-03-14

我认为你试图传递一个字符串给其他活动,你需要在额外的传递它。

String messageToPass=“Hello Word!”

Intent意图=new Intent(this, toClassName.class);intent.putExtra(消息,MessageToPass); start活动(意图);

然后在其他活动中提取,比如

意图=getIntent();字符串消息接收=intent.getExtras(). getString(消息);

 类似资料:
  • 我正在使用Java Mysql连接器,并且在提取结果时遇到问题: 这是需要执行的查询和准备好的语句: 现在我尝试在数组中获取结果,所以我使用: (1) 返回mysql。数组,该数组包含一个定位器,它是指向服务器上的SQL array的逻辑指针,并且(2)应该对temp进行类型转换并返回一个String[],但是我收到了这个错误 有什么想法吗?

  • 我做了一个activity,从已安装的应用程序中选择一个应用程序,获得所选应用程序的启动器意图,并将该意图传递回一个起始activity: onActivityResult来自启动activity: 我从Logcat提取了startActivity内部的字符串和字符串:Intent{act=android.Intent.action.main cat=[Android.Intent.categor

  • 问题 是否有一种方法可以将本地计算机上的docker容器部署到CloudFoundry?如果没有,那么有什么方法可以安全地将容器寄存到CF的某个地方来获取它们呢? CloudFoundry是否能够运行作为Python烧瓶应用程序的docker容器?

  • 问题内容: 有没有一种方法可以将字符串直接写入tarfile?从http://docs.python.org/library/tarfile.html看来,只能添加已经写入文件系统的文件。 问题答案: 我想说,通过将StringIO作为文件对象传递给TarInfo e TarFile.addfile是有可能的。 很粗糙,但可以

  • 使用python sdk将JSON字符串(在内存中创建,而不是从文件中读取)上载到azure blob存储的最佳方式是什么? 我从医院的医生那里了解到https://pypi.org/project/azure-storage-blob/我可以通过执行以下操作将文件上载到azure blob存储。 但是我很难找到任何直接上传字符串的例子。 可以直接上传字符串吗?如果可以,在python中是如何完成