如何回到以前的活动?

时间:2017-03-29 11:48:56

标签: android android-activity back

有人在一周前问我一个问题,直到现在我还没有得到那个问题的答案。问题是我们如何通过按下设备的后退按钮而不使用intent或finish()来回到之前的Activity。

6 个答案:

答案 0 :(得分:4)

如果您使用的是意图,请确保在使用

后不要调用finish();
StartActivity(IntentObj); 

方法比根据活动堆栈按钮将完成其工作并转到上一个活动。

并确保您不会在活动中覆盖onBackPressed()方法。

OR

您可以设置主页按钮转到特定活动, 对于你必须回馈按钮进入操作栏。 对于onCreate()

中的那个
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);

并在manifest.xml

<activity
        android:name="com.example.myfirstapp.DisplayMessageActivity"
        android:label="@string/title_activity_display_message"
        android:parentActivityName="com.example.myfirstapp.MainActivity" >
        <!-- Parent activity meta-data to support 4.0 and lower -->
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.myfirstapp.MainActivity" />
    </activity>

答案 1 :(得分:2)

你可以尝试这个

BackButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            onBackPressed();
        }
    });

之后转到Manifest并在活动标记

下添加此行
 android:noHistory="false"

答案 2 :(得分:1)

通过按下设备的后退按钮,android系统维护堆栈进行活动并为你完成这项工作,无需为返回上一个活动做任何代码。

如果您想在操作栏中添加后退按钮,请执行此操作。

在onCreate方法

中添加以下代码
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);

在您的活动中的Menifest.xml文件中添加以下代码

<meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.myfirstapp.MainActivity" />

在android:value中添加您要重定向的父活动。

如需更多参考,请访问以下链接...

https://developer.android.com/training/implementing-navigation/ancestral.html

答案 3 :(得分:0)

如果您在当前活动中有这样的按钮,那么如果您点击该按钮,则可以转到上一个活动。请注意当前活动将由此完成。

button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            finish();    //finish current activity and go back to previous Activity
        }
    });

答案 4 :(得分:0)

使用getActivity()。onBackPressed();片段中按钮的onclick事件中的代码适合我。

答案 5 :(得分:-3)

您可以通过简单地覆盖活动中的onBackPressed方法来实现。

  @Override
    public void onBackPressed() {
        super.onBackPressed();
    }

希望这有帮助!