【问题标题】:Get access to application layout from Android Phonegap Plugin从 Android Phonegap 插件访问应用程序布局
【发布时间】:2013-01-29 11:19:21
【问题描述】:

我目前正在编写一个插件,试图将视图添加到我的应用程序的当前 LinearLayout。

虽然我很难从插件中访问线性布局,但如果我在我的主要活动中这样做,我可以很好地添加视图:

MyView view = new MyView(this);
root.addView(myView);

但要在我的插件中获取根 LinearLayout,我假设:

this.cordova.getActivity();

是我的主要活动,并且一直在尝试将其转换为主要活动的类型并调用我添加的函数,该函数将返回根 LinearLayout 对象,如下所示:

MyActivity myAct = (MyActivity)this.cordova.getActivity();

MyView view = new MyView(myAct);
myAct .GetLinearLayout().addView(view);

虽然这似乎不起作用并且我没有收到任何错误或类似的信息来帮助找出原因?

任何人都知道如何访问布局以添加我的视图?

【问题讨论】:

    标签: java android cordova phonegap-plugins


    【解决方案1】:

    好的,所以我解决这个问题的方法与我上面尝试做的略有不同。

    首先投射cordova返回的activity:

    MyActivity myAct = (MyActivity)this.cordova.getActivity();
    

    确实有效并返回您的主要活动的实例,所以这不是问题。

    最后我不明白为什么从主要活动向根科尔多瓦布局添加另一个视图有效,但当我在插件中这样做时却没有,所以我所做的是从 onCreate( ) 然后我将视图类的访问器提供给我的插件并从那里开始工作。

    【讨论】:

    • 你能在这里发布你的解决方案吗?我正在尝试解决这个问题,但它仍然不起作用
    【解决方案2】:

    init() 完成后布局不再存在。 init() 中发生的最后一件事是 setContentView() 被布局调用。当setContentView() 被一个布局调用时,布局被膨胀并且布局中的单个视图被添加到活动中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-28
      • 1970-01-01
      • 2013-02-18
      • 1970-01-01
      • 1970-01-01
      • 2011-06-08
      相关资源
      最近更新 更多