我目前正在编写一个插件,试图在我的应用程序的当前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);虽然这似乎不起作用,我没有收到任何错误或类似的帮助找出原因?
有人知道如何访问布局来添加我的视图吗?
发布于 2013-01-30 16:40:06
好的,所以我解决这个问题的方法和上面我尝试做的略有不同。
首先强制转换cordova返回的活动:
MyActivity myAct = (MyActivity)this.cordova.getActivity();并返回主活动的实例,所以这不是问题所在。
最后,我弄不明白为什么从主活动中添加另一个视图到根cordova布局中会起作用,但当我在插件中这样做时就不会了,所以我所做的就是在activity onCreate()中创建我的视图,然后我为我的插件提供了一个视图类的访问器,并从那里开始工作。
发布于 2014-04-18 05:50:50
init()完成后,该布局将不再存在。在init()中发生的最后一件事是使用布局调用setContentView()。当使用布局调用setContentView()时,布局将被放大,布局中的各个视图将添加到活动中。
https://stackoverflow.com/questions/14581686
复制相似问题