findViewById返回null – Android – setContentView

findViewById返回null – Android – setContentView,第1张

概述我在构建布局时遇到了麻烦.我的情况是这样的: 我有一个运行的Activity,它具有为普通和横向定义的布局,但它们是在运行时从onCreate()构建的. 在onCreate()中,我调用了setContentView(my_normal_layout),然后将其添加到使用大量的addView()等,并且工作正常.但是我也在尝试构建我的横向布局,但是当我尝试使用findViewById()来获取我 我在构建布局时遇到了麻烦.我的情况是这样的:

我有一个运行的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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1128586.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存