从Android Phonegap插件访问应用程序布局

时间:2013-01-29 11:19:22

标签: java android cordova phonegap-plugins

我正在编写一个试图将视图添加到我的应用程序的当前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);

虽然这似乎不起作用,但我没有收到任何错误或帮助找出原因?

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

2 个答案:

答案 0 :(得分:1)

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

首先投射cordova返回的活动:

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

实际上是否有效并返回主要活动的实例,因此这不是问题。

最后,我无法弄清楚为什么从主要活动中添加另一个视图到根cordova布局工作但是当我在插件中这样做时,所以我做的是从活动onCreate中创建我的视图( )然后我提供了一个视图类的访问器回到我的插件并从那里开始工作。

答案 1 :(得分:0)

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