关于android解析XML 的问题: xml 内容如下:
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于android解析XML 的问题: xml 内容如下:相关的知识,希望对你有一定的参考价值。
<?xml version="1.0" encoding="UTF-8"?>
<resource>
<name>rain.mp3</name>
<size>123</size>
</resource>
android程序代码如下:
public void characters(char[] ch, int start, int length)
throws SAXException
System.out.println("characters is been called");
System.out.println("charcter.tagName----->" + tagName);
if (tagName.equals("name"))
itsname = new String(ch, start, length);
System.out.println(itsname + "name ok");
if (tagName.equals("size"))
itssize = new String(ch, start, length);
System.out.println(itssize + "size ok");
public void endDocument() throws SAXException
public void endElement(String uri, String localName, String qName)
throws SAXException
if (localName.equals("resource"))
System.out.println("endElement is called");
System.out.println("name---->" + itsname);
System.out.println("size---->" + itssize);
public void startDocument() throws SAXException
System.out.println("start document----->");
public void startElement(String uri, String localName, String qName,
Attributes attr) throws SAXException
tagName = localName;
System.out.println("startElement--tagName--->" + tagName);
--------------------------------------------------------------------------
输出结果让我意外的是 最后 name 的值为空,而且 characters 函数居然调用了4次,为什么会这样呢?
05-12 12:56:10.072: INFO/System.out(334): xml content: <?xml version="1.0" encoding="UTF-8"?><resource> <name>rain.mp3</name> <size>123</size></resource>
05-12 12:56:10.102: INFO/System.out(334): start document----->
05-12 12:56:10.102: INFO/System.out(334): startElement--tagName--->resource
05-12 12:56:10.102: INFO/System.out(334): characters is been called
05-12 12:56:10.112: INFO/System.out(334): charcter.tagName----->resource
05-12 12:56:10.122: INFO/System.out(334): startElement--tagName--->name
05-12 12:56:10.122: INFO/System.out(334): characters is been called
05-12 12:56:10.122: INFO/System.out(334): charcter.tagName----->name
05-12 12:56:10.132: INFO/System.out(334): rain.mp3name ok
05-12 12:56:10.132: INFO/System.out(334): characters is been called
05-12 12:56:10.142: INFO/System.out(334): charcter.tagName----->name
05-12 12:56:10.153: INFO/System.out(334): name ok
05-12 12:56:10.153: INFO/System.out(334): startElement--tagName--->size
05-12 12:56:10.162: INFO/System.out(334): characters is been called
05-12 12:56:10.162: INFO/System.out(334): charcter.tagName----->size
05-12 12:56:10.172: INFO/System.out(334): 123size ok
05-12 12:56:10.172: INFO/System.out(334): endElement is called
05-12 12:56:10.182: INFO/System.out(334): name---->
05-12 12:56:10.182: INFO/System.out(334): size---->123
<resource>
<name>rain.mp3</name>
<size>123</size>
</resource>
LZ我给你解释下详细的执行过程
1.<resource>这个后面其实还有 \n 。
android解析XML采用的sax方式解析,也就是逐行解析。解析最后这个 \n 的时候也会调用characters() 。
2. <name>rain.mp3</name>解析到这里的。前面还有两个 \t\t(制表符)也会调用 characters()。
解析到标签中的rain.mp3时也会调用characters() 。准确的说调用characters() 是7次
你再试试,我没有调试 还有错误再留言追问
如果在在 endElement()方法中没有将tagName设置为“ ” 或者任意字符串都可以得到正确的结果没错,但是 我曾尝试将其 在endElement()方法中设置为 null 值,结果解析到那里就停止了,这又是为什么? 还有 我这个程序我是在 characters 方法里面打印 的 characters is been called 的确是4次 !
追答还没有解决的话 加我QQ 693291931 给你详细的说 也算是我的提升
参考技术A 这么高端的问题,应该去技术论坛csdn。你测试用的android系统是多少版本,我怎么觉得不支持这个函数调用呢?
Xml:描边、边框、按钮内的轮廓文本
【中文标题】Xml:描边、边框、按钮内的轮廓文本【英文标题】:Xml: stroke, border, outline text inside button 【发布时间】:2016-11-18 05:29:06 【问题描述】:我想在按钮内的黑色文本中添加白色笔触。我可以想办法用常规的 textview 来做到这一点,但在按钮方面却不行。
这是关于 Xml android studio btw。
activity_main.xml:
<Button
android:layout_
android:layout_
android:padding="5dip"
android:background="@drawable/login_button_style"
android:text="Log Ind"
android:id="@+id/button"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignRight="@+id/editTextPass"
android:layout_alignEnd="@+id/editTextPass"
android:clickable="true" /><![CDATA[
/>
login_button_style.xml:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
<solid android:color="#d7d7d7"/>
<corners
android:bottomRightRadius="15dp"
android:bottomLeftRadius="15dp"
android:topLeftRadius="15dp"
android:topRightRadius="15dp"/>
<stroke android:color="#d10f0f" android: />
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="shadoweffect">
<item name="android:paddingLeft">4px</item>
<item name="android:paddingBottom">4px</item>
<item name="android:textColor">#FFFFFF</item>
<item name="android:textSize">25sp</item>
<item name="android:shadowColor">#000000</item>
<item name="android:shadowDx">0</item>
<item name="android:shadowDy">0</item>
<item name="android:shadowRadius">3</item>
</style>
</resources>
有人可以请教我吗?
【问题讨论】:
发布您的代码和图片,了解您到底想要什么以及发生了什么。 没有图片。我们正在讨论 Android Studio 中的一个常规按钮,我想为其中的文本添加边框。 你想要按钮边框还是只有文本边框? 其实都是库马尔。但我已经自己修复了按钮边框。是文本边框给我带来了麻烦 ***.com/a/22299305/624069 【参考方案1】:查看有关如何制作边框的类似问题的答案。他创建了一个新文件,该文件是该颜色的形状,然后将其存储为可绘制对象以用作背景图像 https://***.com/questions/7690416/android-border-for-button
只要把颜色改成白色就可以了
编辑:
现在真的看到了。您希望字母以白色勾勒。
所以我最好的猜测是在 Photoshop/Sketch 中用文字和边框绘制整个图像。然后将 that 保存为可绘制对象。为您的按钮背景设置。确保将按钮文本设置为引号,因为您已经在 Photoshop 模型中拥有文本
android:text = ""
【讨论】:
以上是关于关于android解析XML 的问题: xml 内容如下:的主要内容,如果未能解决你的问题,请参考以下文章