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

如何将字符串直接“转换”到意图?

景阳曜
2023-03-14

我做了一个activity,从已安装的应用程序中选择一个应用程序,获得所选应用程序的启动器意图,并将该意图传递回一个起始activity:

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

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

onActivityResult来自启动activity:

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提取了startActivity内部的Intent字符串和Intent字符串: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/.downloadsListTab}
IntentstartActivity内部:Intent{act=Intent{act=android.Intent.action.main或者可能是一种将意图直接传递给起始activity的方法?

共有1个答案

楚钊
2023-03-14

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

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);
        }
    }
}
 类似资料:
  • 我正在使用文档来解析命令行参数。这有效,并生成地图,例如 现在我想将和值连接成一个字符串,两个值之间有一个冒号。基本上,诸如: 不幸的是,这不起作用,因为我收到错误消息: 无效操作:参数[“”]“:”(接口{}和字符串类型不匹配) 所以很明显,我需要将从映射中得到的值(它只是<code>接口{}</code>,所以它可以是任何东西)转换为字符串。现在我的问题是,我该怎么做?

  • 我做了一个活动,从已安装的应用程序中选择一个应用程序,获取所选应用程序的启动意图,并将该意图传递回启动活动的用户: 启动活动的OnActivity结果: 我从Logcat中提取了字符串和内部startActivity,我得到了: String:intent{act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]fl

  • 问题内容: 我正在阅读有关python的新f字符串的 博客 ,它们看起来很整洁。但是,我希望能够从字符串或文件中加载f字符串。 我似乎找不到任何执行此操作的字符串方法或其他函数。 从上面我的链接中的示例: 但是,如果我有琴弦怎么办?我希望能够像这样: 事实证明,我已经可以执行类似的操作并获得性能提高。即: 问题答案: f字符串是代码。不仅以安全的方式(当然,字符串文字就是代码),而且以危险的任意代

  • 我想要一个带有ANTLR的规则,将任何字符解析为数字、字符串特殊('@space)等,直到单词FOOTER(不包括) 我要解析的文本是这样的 我尝试使用此代码:在词法分析器中。 在解析器中。 但它不起作用。

  • 问题内容: 我需要从中退出,但我不知道该怎么做。以下失败: 我该如何修复它才能起作用? 问题答案: 使用采用相同大小的类型化数组参数的方法。 也可以使用其他大小,但是这将迫使该方法创建一个新数组以返回而不是重新使用所提供的参数,这可能会导致效率降低。 另请参阅的源代码。

  • 问题内容: 我有一个,我需要一个。如何从一个转换为另一个? 问题答案: 好问题。我有以下五种 6种方法可以做到这一点。 注意:返回。因此有效地两者是相同的。 调用,这又设置了数组。 另一方面,调用以下程序包私有构造函数。 从源代码中的Java 8的源代码 因此似乎是最有效的方法,在这两个存储器和速度方面,用于转换char到String。