gpt4 book ai didi

android - 我无法从我的 XML 资源中读取 AttributeSet

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:39:50 25 4
gpt4 key购买 nike

我正在尝试从 XML 资源文件中读取 AttributeSet。相关代码如下:

//This happens inside an Activity
Resources r = getResources();
XmlResourceParser parser = r.getXml(R.layout.testcameraoverlay);
AttributeSet as = Xml.asAttributeSet(parser);

int count = as.getAttributeCount(); //count is 0!!??

count == 0,所以 Android 根本没有读取任何属性!

XML 文件(R.layout.testcameraoverlay):

<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:text="@string/app_name" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content">
</TextView>

为什么我不能读取属性?

最佳答案

问题是对解析器功能的误解。行后:

XmlResourceParser parser = r.getXml(R.layout.testcameraoverlay);

解析器位于文档的开头,还没有读取任何元素,因此没有属性集,因为属性当然总是相对于当前元素的。所以要解决这个问题,我必须执行以下操作,迭代元素直到到达“TextView”:

    AttributeSet as = null;
Resources r = getResources();
XmlResourceParser parser = r.getLayout(R.layout.testcameraoverlay);

int state = 0;
do {
try {
state = parser.next();
} catch (XmlPullParserException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
if (state == XmlPullParser.START_TAG) {
if (parser.getName().equals("TextView")) {
as = Xml.asAttributeSet(parser);
break;
}
}
} while(state != XmlPullParser.END_DOCUMENT);

关于android - 我无法从我的 XML 资源中读取 AttributeSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4787565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com