我有一个位于direcotry values / 下的 resources.xml 文件,那是
/values/resources.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="TheMissingTabWidget">
<attr name="android:divider" />
</declare-styleable>
</resources>
在我的java代码中,当我尝试通过R.styleable.TheMissingTabWidget
访问此资源时,eclipse抱怨样式无法解析或不是字段。为什么?为什么我无法访问此资源? (我正在使用android 2.1更新)。
答案 0 :(得分:17)
像这样制作values/attrs.xml
资源
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="**com.admob.android.ads.AdView**"><--- where u want to use
<attr name="backgroundColor" format="color" />
<attr name="TextColor" format="color" />
<attr name="keywords" format="string" />
<attr name="refreshInterval" format="integer" />
</declare-styleable>
</resources>
答案 1 :(得分:14)
android.R.styleable类及其字段已从公共API中删除,以更好地确保应用程序的向前兼容性。在android.R.styleable中声明的常量是特定于平台的,并且可以在不同版本之间进行任意更改,因此不适合应用程序使用。您仍然可以从资源或代码访问平台的可设置样式属性。为此,请在项目的res / values / R.attrs文件中使用a声明自定义资源元素,然后在其中声明属性。有关示例,请参阅“sdk”/samples/ApiDemos/res/values/attrs.xml。有关自定义资源的详细信息,请参阅Custom Layout Resources。请注意,SDK中仍提供了android.R.styleable文档,但仅作为平台各种元素的可设置属性的参考。
查看ApiDemos代码和文件res / values / attrs.xml
答案 2 :(得分:4)
就我而言,我无意中完成了import android.R
而不是import com.<mypackage>.R
。
将<mypackage>
替换为您的软件包名称(或删除当前导入,然后让Android Studio完成其余操作)。
答案 3 :(得分:2)
我在Android Studio中显示了一个未定义的可样式化错误,但随后我注意到构建成功。我做了Invalidate Caches&Restart,问题消失了。
(我花了很长时间才弄清楚。)
答案 4 :(得分:2)
请务必使用:
import com.<your-package>.R
不是:
import android.R
答案 5 :(得分:0)
您需要做的是在 attrs.xml 中声明您的样式,而不是 resources.xml 。然后,您就可以从代码中引用它:
R.styleable.TheMissingTabWidget
答案 6 :(得分:0)
您可以像这样访问可设置样式的包级别
<yourpackagename>.R.styleable.name