【问题标题】:"Back Arrow" send data to Parent“返回箭头”向父级发送数据
【发布时间】:2020-03-28 07:04:47
【问题描述】:

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

这是我在我的适配器中点击 ItemClickListener for recycler:

//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 中的意图是转到 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);

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

MainAct(按意图发送图片链接)--- MiddleAct(获取链接,并发送到下一个)--- LastAct(获取链接,按下返回箭头将相同的链接发送到中间)链接将被拖过所有活动

我尝试通过 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();
    }

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

如何“自定义”返回箭头并解决问题?非常感谢您回答我。

【问题讨论】:

标签: java android user-interface android-recyclerview


【解决方案1】:

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

解决方案: 当用户单击箭头返回完成当前活动 (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);
    }
}

【讨论】:

  • 不完全是我需要的,但它会有所帮助,谢谢。
  • @Amazonianpet 我知道你想要什么我的朋友,但是这段代码可以在没有返回 url 的情况下再次返回到中间活动
猜你喜欢
  • 2020-06-26
  • 2021-05-27
  • 2022-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多