Java 我正在尝试返回到上一个活动,但我得到了我的菜单活动

Java 我正在尝试返回到上一个活动,但我得到了我的菜单活动,java,android,xml,Java,Android,Xml,这是我的主要活动--1 这里我想回到-,2 从我想要的地方回来--3 为什么当我在上一个btn中使用时,我会得到我的主要活动,当我制作btn以获得上一个btn时,我会得到我的主要活动 back.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { updateUI(); }

这是我的主要活动--1

这里我想回到-,2

从我想要的地方回来--3

为什么当我在上一个btn中使用时,我会得到我的主要活动,当我制作btn以获得上一个btn时,我会得到我的主要活动

    back.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            updateUI();

        }
    });


}
private void updateUI() {

    Intent regTrip = new Intent(getApplicationContext(), regTrip.class);
    startActivity(regTrip);
    finish();
}

您可以尝试创建新的意图,但不要使用应用程序上下文,而是尝试使用当前活动的名称。例如,如果当前活动的名称为“NewActivity”,您会说: startactivitynewintentnewactivity.this、regTrip.class

这将使您从“NewActivity”页面转到“regTrip”页面


您也可以尝试在onClickListener中添加onBackPressed。这是安卓内置的方法,当用户按下手机上的后退按钮时运行。这意味着,当用户按下你的后退按钮时,他们实际上在做与按下手机上的后退按钮相同的事情。

Toast和Intent都需要参考上下文。以及getApplication、getApplicationContext、LoginActivity.this和getBaseContext,它们都提供对上下文的引用

现在让人困惑的是不同上下文的声明和它们的具体用法。为了使事情变得简单,您应该统计Android框架中可用的两种上下文类型

应用程序上下文 活动上下文 应用程序上下文附加到应用程序的生命周期,并且在应用程序的整个生命周期中始终是相同的。因此,如果您使用的是Toast,则可以同时使用应用程序上下文甚至活动上下文,因为Toast可以从应用程序中的任何位置引发,而不附加到窗口

活动上下文附加到活动的生命周期,如果引发活动的onDestroy,则可以将其销毁。如果要启动新活动,则必须在其意图中使用活动的上下文,以便新启动活动在活动堆栈方面连接到当前活动。但是,您也可以使用应用程序的上下文来启动新活动,但随后需要在Intent中设置flag Intent.flag_activity_new_TASK以将其视为新任务

关于你的案件:

LoginActivity.this虽然指的是您自己的类,它扩展了Activity类,但基类Activity也扩展了Context类,所以它可以用来提供Activity上下文

getApplication虽然引用了应用程序对象,但应用程序类扩展了上下文类,因此可以使用它提供应用程序上下文

getApplicationContext提供应用程序上下文

getBaseContext提供活动上下文

使用Intent时,选择活动上下文,对于toast,您可以使用任何上下文。

一定要这样做-