java - 如何设置一个视图,当用户单击手机的后退按钮时,它会返回到同一个 java 类中的视图
问题描述
我需要弄清楚当用户单击手机的返回按钮(不是界面中的按钮)时如何使界面返回上一页。
问题是当我setContentView()
在我的代码中使用时,当我单击“返回”按钮时,界面没有返回mainlayout.xml
,而是返回到之前的上一个布局文件mainlayout.xml
。
有谁知道如何解决这个问题?
public class Main extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mainlayout);
}
public void clicked(View v){
switch (v.getId()){
case R.id.a:
setContentView(R.layout.alayout);
break;
case R.id.b:
setContentView(R.layout.blayout);
break;
}
}
}
解决方案
它将解决问题,但高度不推荐。
public class Main extends AppCompatActivity {
boolean isMainContentSet = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mainlayout);
}
public void clicked(View v){
switch (v.getId()){
case R.id.a:
setContentView(R.layout.alayout);
isMainContentSet = false;
break;
case R.id.b:
setContentView(R.layout.blayout);
isMainContentSet = false;
break;
}
}
@Override
public void onBackPressed() {
//your code when back button pressed
if(!isMainContentSet){
setContentView(R.layout.mainlayout);
isMainContentSet = true;
}else{
super.onBackPressed();
}
}
}
推荐阅读
- amazon-web-services - 是否可以在 AWS 中为 Lambda 函数配置可用区(AZ)?
- javascript - 使用函数和 if 语句的 JavaScript 表单验证
- javascript - 如何在按下按钮时更改视频
- python - 有限连接超时和无限读取超时
- python - 如何让 discord.py 机器人说出服务器使用的前缀?
- appium - 每次运行 AppiumDriver 时阻止安装 webdriver 代理
- javascript - 如何在通过 java 脚本添加的输入上使用 keyup 功能?
- r - 使用 R Base 从 read.csv2 读取的折线图的图例
- java - 电子邮件未在 @Async 注释方法中发送
- tensorflow - 当 LSTM 获得 2 个或更多数字特征时,它会做什么?