使用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);
}
答案 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。通过单独的活动,您将免费获得按钮功能。使用片段时,您需要在加载片段时执行少量额外工作,但是您不必编写任何代码来直接响应后退按钮。