[英]Android read custom xml resources from meta-data
我正在編寫一個包含啟動畫面活動的庫,並且我希望能夠通過將res / xml /資源傳遞到AndroidManifest.xml文件中該活動的元數據來對其進行配置。
這是我在庫中加載xml資源的方式,但是屬性計數始終為-1。 我知道res如果一定要指向正確的資源,就像我在其上調用getResourceName一樣,它是正確的。
int res = metaData.getInt(METADATA_SPLASH, 0);
XmlResourceParser parser = getResources().getXml(res);
AttributeSet attrs = Xml.asAttributeSet(parser);
另外,我的應用程序中的xml資源如下所示:
<?xml version="1.0" encoding="utf-8"?>
<splash xmlns:lib="http://schemas.android.com/apk/res-auto"
lib:caption="@string/copyright" lib:drawable="@drawable/logo_aperture"
lib:activity=".ui.HomeActivity">
</splash>
最后,在我的庫中,我在attrs.xml文件中定義了屬性,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="drawable" format="reference"></attr>
<attr name="caption" format="string"></attr>
<attr name="activity" format="string"></attr>
</resources>
任何幫助將非常感激。
這是一個較晚的答案,但以防萬一它可以幫助別人。 在嘗試使用AttributeSet之前,請插入以下代碼塊:
int type;
while ((type=parser.next()) != XmlResourceParser.END_DOCUMENT
&& type != XmlResourceParser.START_TAG) {
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.