java - 从活动移动到上一个片段
问题描述
我在应用程序中有三个片段。我正在创建,称它们为 f1、f2、f3。所有这些都包含在 MainActivity 中。在第三个片段 f3 中,我有一个按钮,可将用户带到他们可以发布图片的活动。现在,只要发布成功(使用 onSuccessListener),我就会显示一条 toast 消息,然后使用意图将用户带到 MainActivity。
一切正常,但我想将用户带到上一个片段 f3,而不是使用片段 f1 启动的 MainActivity。我怎样才能做到这一点?
这是我迄今为止尝试过的:
@Override
public void onBackPressed(){
finish();
}
//没有工作
这是正在使用的当前代码
//我的其他代码
PostsRef.child(current_user_id + timesfm).updateChildren(postsMap)
.addOnCompleteListener(new OnCompleteListener() {
@Override
public void onComplete(@NonNull Task task)
{
if(task.isSuccessful())
{
Toast.makeText(PostActivity.this, "Post updated.", Toast.LENGTH_SHORT).show();
loadingBar.dismiss();
SendUserToMain();
}
else
{
Toast.makeText(PostActivity.this, "Error Occured.Please try again.", Toast.LENGTH_SHORT).show();
loadingBar.dismiss();
}
}
});
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
private void SendUserToMain() {
Intent mIntent = new Intent(PostActivity.this, MainActivity.class);
mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(mIntent);
}
解决方案
您需要做的不是调用,而是SendUserToMain();
调用finish()
,因为具有最后一个片段状态的前一个 Activity 位于 backstack 上。目前,您的SendUserToMain();
方法正在创建一个新实例,MainActivity
该实例将调用其onCreate()
方法并将 Activity 设置为就好像它是新的(它是)一样。
推荐阅读
- swift - 编译器无法将私有扩展中的方法识别为私有
- sql - SQL 数据迁移
- binding - 在同一 IIS 站点上根据端口号更改行为
- docker - 不同数据中心之间的 Docker 覆盖网络
- r - 将数据集与R中的csv文件中的数据匹配
- java - Spring MVC 中用于自定义 405 错误响应的可用选项?
- sql - 处理“英寸”标记的 SQL 字符串
- python - Python django admin:如何在管理页面中仅显示属于特定模型的项目?
- javascript - 固定页眉和固定侧导航与静态页脚,侧导航与页脚折叠
- javascript - JavaScript:在包含的表格中设置背景颜色