首页 > 解决方案 > Android 工作室:requestCode 和 intentExtra 键类型要求

问题描述

我最近开始关注一些 Android Studio 教程,并且遇到了一些我完全不理解的东西(并且在谷歌上找不到任何结果,但也许我的词汇不正确)。

回到正轨:当您希望将带有意图的字符串传递给新活动时,您显然需要使用键来检索数据,键类型为字符串。此外,当您想从活动中获取结果时,您将需要另一个键,但这次是 int 类型。

我试过换类型,不行。

有人可以解释为什么这些密钥有不同的类型吗?

谢谢 !

标签: android-studio

解决方案


从您的FirstActivity电话中SecondActivity使用 using startActivityForResult()方法

例如:

Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1);

在您的SecondActivity集合中,您想要返回的数据FirstActivity。如果您不想返回,请不要设置任何内容。

例如:SecondActivity如果你想发回数据:

Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(Activity.RESULT_OK,returnIntent);
finish();

如果您不想返回数据:

Intent returnIntent = new Intent();
setResult(Activity.RESULT_CANCELED, returnIntent);
finish();

现在在您的FirstActivity班级中为该onActivityResult()方法编写以下代码。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == 1) {
        if(resultCode == Activity.RESULT_OK){
            String result=data.getStringExtra("result");
        }
        if (resultCode == Activity.RESULT_CANCELED) {
            //Write your code if there's no result
        }
    }
}//onActivityResult

在这个例子(它是整数)的情况下,你基本上传递了一个 request_code 1 ,它是默认的 Android API。


推荐阅读