java - 范围问题 - 额外添加意图并从 2 个不同的功能开始活动
问题描述
我有 2 个侦听器,1 个需要额外获取意图,即图像 uri,另一个需要使用该额外内容启动其他活动。但我认为,由于它们处于不同的范围内,额外的内容并没有真正用于启动其他活动的意图。
这是代码:
private Intent intent = new Intent(this, OtherActivity.class);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button button= findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
intent = new Intent(v.getContext(), OtherActivity.class);
startActivity(intent);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == Thing.SPECIFIC_REQUEST_CODE) {
Thing.ActivityResult result = Thing.getActivityResult(data);
if (resultCode == RESULT_OK) {
Uri resultUri = result.getUri();
intent.putExtra("imageUri", resultUri.toString());
}
}
}
我希望我输入的额外内容onActivityResult
将发送到onClickListener
单击按钮时启动的活动
解决方案
我的建议是使用一个字段来存储图像 URI:
1-在你的类中定义一个字符串变量
String imageURI = "";
2- 在你的 onActivityResult :
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == Thing.SPECIFIC_REQUEST_CODE) {
Thing.ActivityResult result = Thing.getActivityResult(data);
if (resultCode == RESULT_OK) {
Uri resultUri = result.getUri();
imageURI = resultUri.toString();
}
}
3-在您的 onClickListener 中:
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
intent = new Intent(v.getContext(), OtherActivity.class);
intent.putExtra("imageUri", imageURI);
startActivity(intent);
}
});
推荐阅读
- c# - 从 Dialogflow 在 Azure 中接收 webhook
- css - 如何在 Chrome iOS 上无缓存刷新
- regex - 正则表达式重定向以包含任何子域
- javascript - javascript 字符串数组到深度合并对象
- sql - SQL Server 转换 3 行 3 列 9 列 1 行
- android - 更新 Android 源代码中的 .mk 和 .xml 文件
- mysql - mysql ndb alter table 失败,无法删除索引
- wordpress - 30 天后更新自定义字段
- android - Google Play Services Base 被解析为不在依赖项中的版本
- swift - Swift:当定时器触发时,如何阻止平移手势取消?