我有 2 个监听器,一个需要获取 intent extra,这是一个图像 uri,另一个需要使用该 extra 启动另一个 Activity 。 但我认为,由于它们在不同的范围内,额外的部分并没有真正用于启动其他 Activity 的 Intent 。
这是代码:
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
启动的 Activity
最佳答案
我的建议是使用一个字段来存储图片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);
}
});
关于java - 范围问题 - 额外放置 Intent 并从 2 个不同的函数开始 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53471338/