我正在尝试提出申请。在我的应用程序中,有一个包含图像的回收站,当您单击特定的项目时,它进入中间活动(该活动链接到加载图像(通过Picasso)并显示图像),然后您可以转到上一个活动, 做了什么”。 但是我的后退箭头有一个问题: 上一个活动是中间活动的子级,因此,当您单击箭头图标时,它会转到“中间活动”。但是中间活动应该用于获取图像数据(例如从回收站项目加载图像的链接)。因此,当单击 LastActivity 上的箭头时,它将转到 MiddleActivity ,但由于 没有图像的必要链接而无法正常工作。< / em>
这是我在回收站适配器中单击的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的意图是转到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);
我的想法是我需要自定义 后退箭头并按意图发送图像链接。 过程将如下所示:
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();
}
希望我已经正确解释了我的问题。
如何“自定义” 后退并解决问题?非常感谢您回答。
答案 0 :(得分: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);
}
}