我正在编写一个试图将视图添加到我的应用程序的当前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);
虽然这似乎不起作用,但我没有收到任何错误或帮助找出原因?
任何人都知道如何访问布局以添加我的视图?
答案 0 :(得分:1)
好的,所以我解决这个问题的方式与我上面尝试的方式略有不同。
首先投射cordova返回的活动:
MyActivity myAct = (MyActivity)this.cordova.getActivity();
实际上是否有效并返回主要活动的实例,因此这不是问题。
最后,我无法弄清楚为什么从主要活动中添加另一个视图到根cordova布局工作但是当我在插件中这样做时,所以我做的是从活动onCreate中创建我的视图( )然后我提供了一个视图类的访问器回到我的插件并从那里开始工作。
答案 1 :(得分:0)
init()
完成后,布局不再存在。使用布局调用init()
中发生的最后一件事setContentView()
。使用布局调用setContentView()
时,布局会膨胀,布局中的各个视图会添加到活动中。