Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从xml文档读取的可绘制资源_Android_Xml_Android Resources - Fatal编程技术网

Android 从xml文档读取的可绘制资源

Android 从xml文档读取的可绘制资源,android,xml,android-resources,Android,Xml,Android Resources,我在resources/raw上使用xml文档来填充ListView,代码如下: List<Item> items = new ArrayList<Item>(); try { BufferedReader br = new BufferedReader(new InputStreamReader(getResources().openRawResource(R.raw.data))); XmlPullParser p = XmlP

我在resources/raw上使用xml文档来填充ListView,代码如下:

List<Item> items = new ArrayList<Item>();
    try {
        BufferedReader br = new BufferedReader(new InputStreamReader(getResources().openRawResource(R.raw.data)));
        XmlPullParser p = XmlPullParserFactory.newInstance().newPullParser();
        p.setInput(br);
        int tipoevento = p.next();
        while (tipoevento != XmlPullParser.END_DOCUMENT) {
            switch (tipoevento) {
                case XmlPullParser.START_TAG:
                    if (p.getAttributeValue(null,"id") != null) {
                        items.add(
                                new Item(
                                        Integer.parseInt(p.getAttributeValue(null, "id")),
                                        p.getAttributeValue(null, "name"),
                                        p.getAttributeValue(null, "url")));
                    }
                    break;
                default:break;
            }
            tipoevento=p.next();
        }
        br.close();
    }
    catch(Exception e) {
        Log.e("Error: ", e.getMessage());}
List items=new ArrayList();
试一试{
BufferedReader br=新的BufferedReader(新的InputStreamReader(getResources().openRawResource(R.raw.data));
XmlPullParser p=XmlPullParserFactory.newInstance().newPullParser();
p、 设置输入(br);
int tipoevento=p.next();
while(tipoevento!=XmlPullParser.END_文档){
开关(tipoevento){
case XmlPullParser.START_标记:
if(p.getAttributeValue(null,“id”)!=null){
items.add(
新项目(
Integer.parseInt(p.getAttributeValue(null,“id”),
p、 getAttributeValue(空,“名称”),
p、 getAttributeValue(null,“url”);
}
打破
默认:中断;
}
tipoevento=p.next();
}
br.close();
}
捕获(例外e){
Log.e(“错误:,e.getMessage());}
当我运行它时,我得到以下错误:error:﹕ 无效int:“R.drawable.following”。 我以这种方式将资源id放入xml中,我知道错误在解析中,但我不知道如何操作:

<?xml version="1.0" encoding="utf-8"?>
<filmList>
<film name="Following" id="R.drawable.following" url="http://www.imdb.com/title/tt0154506/"/>
<film name="Memento" id="R.drawable.memento" url="http://www.imdb.com/title/tt0209144/"/>
<film name="Batman Begins" id="R.drawable.batman_begins" url="http://www.imdb.com/title/tt0372784/"/>
<film name="The Prestige" id="R.drawable.the_prestige" url="http://www.imdb.com/title/tt0482571/"/>
<film name="The Dark Knight" id="R.drawable.the_dark_knight" url="http://www.imdb.com/title/tt0468569/"/>
<film name="Inception" id="R.drawable.inception" url="http://www.imdb.com/title/tt1375666/"/>
<film name="The Dark Knight Rises" id="R.drawable.the_dark_knight_rises" url="http://www.imdb.com/title/tt1345836/"/>
</filmList>


“R.drawable.后面的“
是一个字符串,不能解析为整数。在XML中不能以这种方式引用资源;
R.type.entry
语法是在Java代码中使用的,而不是在XML中使用的。那么我如何引用资源并在以后在Java中使用它们呢?您可以尝试只提供可绘制名称(例如
id=“following”
),然后使用
resources.getIdentifier(名称,“可绘制”,“您的.package.name”)
查找您将在java中使用的实际整数id。请参见
“R.drawable。后面的“
是一个字符串,不能作为整数解析。在XML中不能以这种方式引用资源;
R.type.entry
语法是在Java代码中使用的,而不是在XML中使用的。那么我如何引用资源并在以后在Java中使用它们呢?您可以尝试只提供可绘制名称(例如
id=“following”
),然后使用
resources.getIdentifier(名称,“可绘制”,“您的.package.name”)
查找您将在java中使用的实际整数id。看见