我们正在创建一个包含两个主要视图的应用程序:sView和sViewSettings。如果按下Android Back按钮,我们需要一个if语句来检查当前视图是否设置为sView设置,如果是,则调用sView。
已经为后退按钮设置了监听器,只需要调用if语句来检查当前视图。
已经尝试过了 if(this.findViewById(android.R.id.content)== sViewSettings)
有关于此的任何想法吗?
感谢您的阅读, 特拉维斯
答案 0 :(得分:2)
标识为android.R.id.content
的视图是FrameLayout
,其中包含您的内容视图。试试这个:
ViewGroup contentFrame = (ViewGroup) findViewById(android.R.id.content);
if (contentFrame.getChild(0) == sViewSettings) { ... }
但是,我建议采用略有不同的方法:使用ViewSwitcher
(或任何类型的ViewAnimator
)在两个主视图之间进行切换,并在代码中跟踪哪一个显示。
编辑:如果要单独加载布局,可以将id(同一个)分配给每个布局的根视图,然后使用findViewById
直接检索内容视图。