【问题标题】:How to use setContentView(layout_id) second time in main_activity of android code?如何在 android 代码的 main_activity 中第二次使用 setContentView(layout_id)?
【发布时间】:2015-01-19 17:32:12
【问题描述】:

我的 activity_main.xml 有 2 个按钮。我已经实现了 onClickListner();对他们俩来说。

对于 MainActivity,-> setContentView(R.layout.activity_main) 这个 activity_main 有 2 个按钮。

Button1 - setContentView(R.layout.layout1); Button2 - setContentView (R.layout.layout2);

这是正确的使用方法吗?因为..

程序运行良好。问题是当我单击 Button2 时,layout2 加载,我现在想回到 main_activity,所以我按下“返回”按钮。 整个应用程序关闭..!!我被带到手机的主屏幕。

如何解决这个问题?我说 ViewSwitcher。我没有返回按钮。

还有什么办法吗??请原谅基本的问题和糟糕的英语。

【问题讨论】:

    标签: android multiple-views setcontentview


    【解决方案1】:

    你必须在你的活动中覆盖 onBackPressed() 函数,你必须再次将内容视图设置为 activity_main.xml 并从 onBackPressed 中删除 super.onBackPressed。

    类似这样的:

    @Override
    public void onBackPressed() {
        //validation if you are in second layout
        if(layout2){
           //do things
            showLayout1();
        }else{
           super.onBackPressed();
        }
    }
    

    【讨论】:

    • 谢谢... if(layout2) 怎么写??如何查看当前视图是否设置为layout2?
    【解决方案2】:

    您几乎不应该多次致电setContentView()。您所描述的是标准的后台行为。要么开始一个new Activity,无论你要转换到什么布局,或者切换到使用Fragments,然后在后台添加一个新的Fragment,而不是调用setContentView()

    这两种方法都会为您提供返回按钮的原生行为支持。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-01
      • 2011-04-06
      • 1970-01-01
      • 1970-01-01
      • 2021-11-13
      相关资源
      最近更新 更多