
我有一个运行的Activity,它具有为普通和横向定义的布局,但它们是在运行时从onCreate()构建的.
在onCreate()中,我调用了setContentVIEw(my_normal_layout),然后将其添加到使用大量的addVIEw()等,并且工作正常.但是我也在尝试构建我的横向布局,但是当我尝试使用findVIEwByID()来获取我的基本布局时,这是我的布局文件的一部分存储在res / layout-land中它返回null.
现在我已经查看了具有null返回问题的人的解决方案,但人们建议必须首先执行setContentVIEw.但是我不想将内容视图设置为我的横向布局,我只希望在旋转屏幕时发生这种情况(它自动执行此 *** 作?).
那么有谁知道如何解决使用findVIEwByID和改变我未被设置为内容视图的视图的问题?
我可以发布任何需要的代码行,但我希望这个解释足够好.
谢谢,
玩笑
解决方法 如果我理解正确,您在两个不同的布局文件中有不同的UI元素.如果是这种情况,那么你仍然可以将布局文件命名为相同的(一个在/ res / layout中,一个在/ res / layout-land中),并使用setContentVIEw(…)自动膨胀正确的布局文件.
之后,您需要知道的是当前方向(纵向或横向),以便知道使用findVIEwByID(…)调用哪些代码.
您可以使用…找到方向
getwindowManager().getDefaultdisplay().getorIEntation();
如果您使用的是API 8(AndroID v2.2)或更高版本,则不推荐使用上述内容,您应该调用getRotation()而不是getorIEntation().
见Display.getOrientation()
总结以上是内存溢出为你收集整理的findViewById返回null – Android – setContentView全部内容,希望文章能够帮你解决findViewById返回null – Android – setContentView所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)