【问题标题】:Getting Currently Set Content View获取当前设置的内容视图
【发布时间】:2012-02-06 18:09:51
【问题描述】:

我们正在创建一个具有两个主要视图的应用程序:sView 和 sViewSettings。如果按下 Android Back 按钮,我们需要一个 if 语句来检查当前视图是否设置为 sView 设置,如果是则调用 sView。

已经为后退按钮设置了一个监听器,只需要它调用 if 语句来检查当前视图。

已经试过了 if (this.findViewById(android.R.id.content) == sViewSettings)

对此有何想法?

感谢您的阅读, 特拉维斯

【问题讨论】:

标签: java android view get


【解决方案1】:

ID 为 android.R.id.content 的视图是一个 FrameLayout 持有您的内容视图。试试这个:

ViewGroup contentFrame = (ViewGroup) findViewById(android.R.id.content);
if (contentFrame.getChild(0) == sViewSettings) { ... }

不过,我建议采用稍微不同的方法:使用ViewSwitcher(或任何类型的ViewAnimator)在两个主要视图之间切换,并在您的代码中跟踪显示的是哪一个。

编辑:如果您想单独加载布局,您可以为每个布局的根视图分配一个 id(相同的),然后使用 findViewById 直接检索内容视图。

【讨论】:

  • 感谢 ViewGroup 代码运行良好,但不确定它是如何工作的,但确实如此。但是现在我有一个新问题。按下后退按钮时视图会按应有的方式切换,但随后会立即关闭应用程序,知道如何禁用它吗?
  • @TravisElliott - 这取决于你如何抓住后退按钮。有关更多信息,请参阅 this threadonBackPressed() 的文档。
猜你喜欢
  • 1970-01-01
  • 2023-03-21
  • 2013-04-22
  • 1970-01-01
  • 1970-01-01
  • 2014-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多