java - "Back Arrow"发送数据给Parent

标签 java android user-interface android-recyclerview

我正在尝试申请。在我的应用程序中有一个包含图像的回收器,当您单击特定项目时它会转到中间 Activity (该 Activity 获取加载图像的链接(毕加索)并显示图像),然后您可以转到最后一个 Activity “做某事”。 但是我的后退箭头有问题: enter image description here 最后一个 Activity 中间 Activity 的子 Activity ,因此当您单击箭头图标时,它会转到中间 Activity 。但是 中间 Activity 应该获取图像数据(例如从回收站项目加载图像的链接)。因此,当单击 LastActivity 上的箭头时,它会转到 MiddleActivity 但无法正常工作,因为 没有图像的基本链接。

这是我的回收站适配器中的点击 ItemClickListener:

//IMPLEMENT CLICK LISTENER
        holder.setItemClickListener(new ItemClickListener() {
            @Override
            public void onItemClick(View v, int pos) {
                String getTitle = mMainList.get(pos).getKeyId();
                Toast.makeText(v.getContext(),getTitle,Toast.LENGTH_SHORT).show();
                //Go to the next Activity
                Intent show_more = new Intent(v.getContext(), MiddleActivity.class);
                show_more.putExtra("image_link", mMainList.get(pos).getImageLink());
                v.getContext().startActivity(show_more);
            }
        });

MiddleActivity 中的 Intent 转到 LastActivity

Intent go_to_last = new Intent(MiddleActivity.this, LastActivity.class);
                        String image_link_push = getIntent().getStringExtra("image_link");
                        go_to_last.putExtra("image_link_push", image_link_push);//push link further
                        startActivity(go_to_last);

我的想法是我需要自定义 后退箭头 并按 Intent 发送图像链接。 Procces 看起来像这样:

MainAct(按 Intent 发送图像链接)--- MiddleAct(获取链接,并发送到下一个)--- LastAct(获取链接,在按下后退箭头时将相同的链接发送到 Middle)链接将被拖到所有 Activity 中

我试图通过 onBackPressed 方法(在 LastActivity 中)实现它,但它什么也没做:

image_link_back = getIntent().getStringExtra("image_link_push");

 @Override //!!
    public void onBackPressed()
    {
        Intent intent = new Intent(LastActivity.this, MiddleActivity.class);
        intent.putExtra("image_link_back", image_link_back);
        startActivity(intent);
        super.onBackPressed();
        finish();
    }

希望我已经正确解释了我的问题。

如何“自定义”后退箭头并解决问题?如果您能回答我,我将不胜感激。

最佳答案

因为当用户单击返回箭头时, Activity 管理器关闭当前 Activity 并启动父 Activity ,所以 onCreate 将再次调用

解决方案: 当用户单击返回箭头完成当前 Activity (LastActivity) 而无需再次启动 parentActivity(MiddleActivity) 时,通过将此代码插入 LastActivity

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            //listen to back arrow in app bar
            finish();
            return true;

        default:
            return super.onOptionsItemSelected(item);
    }
}

关于java - "Back Arrow"发送数据给Parent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59159741/

相关文章:

python - 如何控制进度条大小 PySimpleGUI

java - 关于 Swing 应用程序中 JDialogs 设计方法的问题

java - 如何在 oracle 数据库中存储 BigInteger 值

Android Thread postDelayed 不起作用

windows - 文本 'Extent' 属性不包含正确的大小

android - UIView 的 convertRect/convertPoint 函数的 android 等价物是什么?

java - Dagger 2 : Cannot find symbol class when using subcomponent/dependent components

java - 在 Android 上执行 firebase 查询

java - java 在数组中搜索并区分大小写

java - 创建一个在失败时自动重新启动的 Java 服务器