如果我想设置内容视图,那么我使用:
setContentView(R.layout.test);
但是当我设置主题时,为什么我必须将android
添加到R.style.x
的开头?
setTheme(android.R.style.Theme_Light);
setContentView(R.layout.test);
答案 0 :(得分:3)
android API定义了大量标准资源,如主题,可绘制,属性......
当您需要参考其中一个资源时:您必须使用android.R
答案 1 :(得分:1)
android.R
是对 Android R.java文件的引用。它不适用于您的应用。它包含对每种样式,资源以及您在Android应用程序中使用的任何内容的引用。
另一方面,R.x
(不带android
前缀)指的是本地应用。它包含为您的应用程序定义的特定样式,资源等,并且更加具体。
关于您使用哪个问题:
如果要引用标准样式,请使用android.R
。这就像android.R.style.holo
。它也可能是动画,但请记住这些不是自定义的,这些是构建块。
当您在本地声明某些内容时使用R.x
。这将是您定义的内容,例如R.style.MyTheme
或R.layout.MyLayout
。
答案 2 :(得分:0)
您没有被迫使用android.R.style.Theme_Light
您可以创建主题并使用R.style.myTheme
。
如果要使用布局/图像/属性/等,请使用android.R.*
。已经在Android内部构建,无需再次重写。
您可以在任何地方android.R.*
使用R.x
(它们是相同的,R.x
与您的应用程序一起构建的区别android.R
已经在这里。你可以重新制作一些东西,但是为什么Google已经为你做了更多工作呢?