java - onActivityResult 不能与 onBackPressed 一起使用?
问题描述
我有两个活动,Activity1.java
和Activity2.java
。Activity1.java
开始,当用户按下操作栏上的后退按钮时Activity2.java
,我需要Activity2.java
返回一些数据。Activity1.java
但由于某种原因,它不起作用......
活动1.java:
public class Activity1 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_1);
Intent intent = new Intent(this, Activity1.class);
int requestCode = 100;
startActivityForResult(intent, requestCode);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
Log.i("TEST", "RequestCode:" + requestCode);
Log.i("TEST", "ResultCode:" + resultCode );
switch (resultCode) {
case RESULT_OK:
Log.i("TEST", data.getStringExtra("MESSAGE"));
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
Activity2.java
public class Activity2 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_2);
}
@Override
public void onBackPressed() {
Intent intent = new Intent(this, Activity1.class);
intent.putExtra("MESSAGE", "Hello from Activity 2!");
Log.i("TEST", "Setting result...");
setResult(RESULT_OK, intent);
finish();
super.onBackPressed();
}
}
当我运行该应用程序时,只有“设置结果...”会记录到 Logcat。似乎甚至没有调用 onActivityResult 覆盖。我尝试在 Activity2 的 onCreate() 方法中更改请求代码、结果代码和设置结果,但没有任何效果。
有人可以帮忙吗?任何帮助,将不胜感激!
解决方案
您没有正确调用意图:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_1);
Intent intent = new Intent(this, Activity1.class);
int requestCode = 100;
startActivityForResult(intent, requestCode);
}
应该:
Intent intent = new Intent(this, Activity2.class);
推荐阅读
- excel - 比较2列,如果为真则返回某个值
- powershell - 使用 2 个 foreach 在 powershell 中循环
- ios - 自定义 React SVG 组件不在 iOS 上呈现,在桌面上呈现正常
- linux - 是否可以通过 txt 或 CSV 文件自动向终端输入命令,而不是手动写出来?
- azure-devops - DevOps CICD - 并行阶段部署
- for-loop - 在列中输出向量布尔值?
- r - sparklyr + lm 带有分类预测器
- python - linalg.solve() 迭代字典
- python - 如何从文本中提取表情符号,然后将它们添加到新列?
- api - 从 cuckoo.cert.ee 中提取 api 调用