我何时会在我当地的R.上使用android.R?

时间:2014-07-13 20:48:26

标签: android r.java-file

如果我想设置内容视图,那么我使用:

setContentView(R.layout.test);

但是当我设置主题时,为什么我必须将android添加到R.style.x的开头?

setTheme(android.R.style.Theme_Light);
setContentView(R.layout.test);

3 个答案:

答案 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.MyThemeR.layout.MyLayout

答案 2 :(得分:0)

您没有被迫使用android.R.style.Theme_Light您可以创建主题并使用R.style.myTheme

如果要使用布局/图像/属性/等,请使用android.R.*。已经在Android内部构建,无需再次重写。

您可以在任何地方android.R.*使用R.x(它们是相同的,R.x与您的应用程序一起构建的区别android.R已经在这里。你可以重新制作一些东西,但是为什么Google已经为你做了更多工作呢?