java - 范围问题 - 额外放置 Intent 并从 2 个不同的函数开始 Activity

标签 java android

我有 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/

相关文章:

android - 更改菜单中的可绘制颜色

android - Android 中的 Viewpager 可以在不同的日子之间无休止地切换

java - java中数组中的不兼容类型

Java曲线拟合库

java - map 合并函数(不应该被调用!?)

java - 双逗号从 0.0 到 0.000

android - 使用 Intent 从 ListActivity 开始新 Activity

android如何使其他应用程序可访问数据文件夹内容

android - 如何从 Arraylist 值创建 Json?

java - 在运行时将 jars 添加到 Eclipse 插件