android-studio - Android 工作室:requestCode 和 intentExtra 键类型要求
问题描述
我最近开始关注一些 Android Studio 教程,并且遇到了一些我完全不理解的东西(并且在谷歌上找不到任何结果,但也许我的词汇不正确)。
回到正轨:当您希望将带有意图的字符串传递给新活动时,您显然需要使用键来检索数据,键类型为字符串。此外,当您想从活动中获取结果时,您将需要另一个键,但这次是 int 类型。
我试过换类型,不行。
有人可以解释为什么这些密钥有不同的类型吗?
谢谢 !
解决方案
从您的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。
推荐阅读
- dependencies - 如何使 docs/ 环境使用本地(尚未发布)的包版本
- java - 如果 URL 包含查询字符串参数,则屏幕截图在 selenium-chromedriver 中失败
- azure - Hive View 对 HDInsight 4.0 的本机支持
- reactjs - 如何为注册过程创建激活码?
- python - 从另一个数组的子集创建一个新数组
- linux - Netbeans 在 Linux 上构建 Ant 项目
- reactjs - 如何为钩子编写测试?
- .net - 使用 cyper 获取 neo4j 的内部唯一 ID 并将其分配给我的对象
- typescript - 配置 TSLint 以显示静态只读名称错误:'some_string'
- javascript - 检查时间戳是否超过 24 小时 - Javascript