【问题标题】:Android : how to set context to a view in layout xml?Android:如何在布局 xml 中为视图设置上下文?
【发布时间】:2010-09-14 03:56:14
【问题描述】:

我在 ActivityGroup 中使用 WebView,如果 WebView 显示 Dialog 并抱怨活动无效,它将引发异常。但是如果我将 WebView 的上下文设置为 TOP 活动就可以了。所以我想知道如何在布局xml中设置上下文?

【问题讨论】:

    标签: android layout webview android-context


    【解决方案1】:

    您可以使用 layoutinflater 来实现:

    View viewToLoad = LayoutInflater.from(this.getParent()).inflate(R.layout.yourLayoutName, null);
    this.theSpinner = (Spinner) viewToLoad.findViewById(R.id.Spinny);
    this.setContentView(viewToLoad );
    

    希望对您有所帮助。对于对话框,您只需将上下文从 this 更改为

    this.getParent()
    

    【讨论】:

      【解决方案2】:

      所以我想知道如何在布局 xml 中设置上下文?

      这是不可能的。不过,我对ActivityGroup 有一些经验,所以我知道如何解决这个问题:

      // in your ActivityGroup...
      public class YourActivityGroup extends ActivityGroup{
          public static YourActivityGroup self;
          public YourActivityGroup(){
              self = this;
              // the rest of your code here
          }
      }
      

      然后,当您需要上下文来显示对话框或 Toast 或其他内容时,您可以使用 YourActivityGroup.self

      【讨论】:

      • 但如果我使用 findViewById(...) 获取 Spinner,我无法设置上下文 - 我该如何实现?与 ActivityGroup 结合,微调器不起作用,不幸的是...
      • 我不知道您为什么要将上下文设置为微调器...这会给您带来问题吗?
      • 是的 - 它询问我的活动是否正在运行:“无法添加窗口——令牌 android.app.LocalActivityManager$LocalActivityRecord@44ed8338 无效;您的活动是否正在运行?”
      猜你喜欢
      • 2021-02-15
      • 1970-01-01
      • 1970-01-01
      • 2020-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-15
      相关资源
      最近更新 更多