【问题标题】:How can I get the view from an activity?如何从活动中获取视图?
【发布时间】:2013-01-03 22:58:16
【问题描述】:

我知道这适用于 onClick 事件处理程序:

public void NextPage(View view)
{
    View parentView = (View) view.getParent();
    parentView.setBackground(images[imageNumber]);
}

这很好用。我能够获取被点击的 imagebutton 的父视图。我当前活动视图的背景设置为可绘制图像数组。

但是,我正在尝试使用以下方法在其他地方获得相同的视图:

View parentView = getWindow().getDecorView().findViewById(android.R.id.content);
parentview.setBackground(images[imageNumber]);

这不起作用。我相信返回的视图不是正确的视图。我可能会看到我的主要活动。

编辑:

所以我有 2 个活动。我的 MainActivity 和我的 SecondActivity。在 MainActivity 中单击按钮后,我开始第二个活动:

Intent intent = new Intent(this, SecondActivity.class);         
startActivity(intent);

在我的 SecondActivity 中,我的背景可能会发生变化。更改它的一种方法是单击 1 one 2 按钮。这是由上面的 NextPage 代码完成的,只要我可以访问正确的视图,它就可以完美地工作。

有时我想更改背景,但是我似乎无法访问正确的视图。我不确定如何找到与 NextPage 能够找到的单击事件相同的视图。

【问题讨论】:

  • 你是崩溃了还是什么都没做?
  • "...试图在其他地方获得相同的视图..." - “其他地方”在哪里?
  • 你试过 getWindow().getDecorView() 吗?通常,您可以为要设置为活动内容视图的视图设置一个 id,这样您可以在将视图添加为 contentView 后在 onCreate() 中获取它。

标签: android view android-activity


【解决方案1】:

我在同一页面上有一个按钮,所以我抓住了那个按钮并获得了它的父视图:

myButton.parentView();

可能不是最好的解决方案,但它确实有效!

【讨论】:

    猜你喜欢
    • 2019-10-26
    • 2012-01-06
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-31
    相关资源
    最近更新 更多