使用"返回"按钮返回上一个布局

时间:2016-09-19 00:35:18

标签: android button return back

使用BACK按钮返回上一个布局/动作的代码是什么?我应该把它放在哪里?我喜欢后退按钮与我的"返回"相同的功能。我在我的应用上创建的按钮。

以下是一个例子:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Return"
    android:id="@+id/voltar"
    android:layout_gravity="bottom"
    android:onClick="callCho"/>

在这个例子中,&#34; back&#34;的代码怎么样?按钮执行&#34; callCho&#34; metod,返回先前的布局

编辑: 以下是我如何使用我创建的&#34; Return&#34;按钮回到以前的布局,我喜欢那个手机&#34;返回&#34;按钮执行相同的操作:

//XML File
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Return"
    android:id="@+id/voltar"
    android:layout_gravity="bottom"
    android:onClick="callCho"/>

//main activity
public void callCho(View v) {
    setContentView(R.layout.choice);
}

2 个答案:

答案 0 :(得分:0)

所以你说你已经实现了Return按钮,并且你希望你的“后退”按钮的行为完全相同?

如果是这样, 只需确保在您的活动中覆盖onBackPressed()方法,在那里进行所有处理,当您按下该按钮时,只需致电onBackPressed()

更新:

Activity

中执行此操作
@Override
public void onBackPressed() {
    // do your back button logic here
    // you can have conditions or whatever you want to do.
    // change to different fragment, go to different activity, etc.
}

然后,在Activity

中使用此方法
public void callCho() {
    onBackPressed();
}

这意味着每次按下该按钮,它的行为就像用户按下手机本身的RETURN(BACK)按钮一样。

// UPDATE ========&gt;&gt;&gt;根据以下评论:

只要启动新片段,

getFragmentManager().popBackStackImmediate();就可以返回上一个片段,将其正确添加到后台堆栈。这是一个例子:

假设你在片段X上,你想要去片段Y:

getSupportFragmentManager().beginTransaction().add(fragmentY, "fragmentY").addToBackStack().commit();

现在当你在片段Y上并且你致电getFragmentManager().popBackStackImmediate();时,它将转到片段X.

我希望这很清楚。

您可以在此处详细了解:

https://developer.android.com/training/implementing-navigation/temporal.html#back-fragments

答案 1 :(得分:0)

问题是您正在使用setContentView()来更改屏幕。正确的方法是为每个屏幕创建单独的Activity或Fragment。通过单独的活动,您将免费获得按钮功能。使用片段时,您需要在加载片段时执行少量额外工作,但是您不必编写任何代码来直接响应后退按钮。