android中怎么读取xml节点文本然后一条一条地显示在TextView中,例如xml内容如下:
<?xml version="1.0" encoding="utf-8"?>
aaaa
bbbbb
我想将xml中的内容aaaa显示在TextView中,点击一个下一则按钮的时候响应显示bbbbb,另一个上一则按钮的时候又显示aaaa
我是初学者啊,这个问题纠结我很久了
:lol: 我博客我用dom方式写了一个demo,有附件
[url]http://renpeng301.iteye.com/blog/1142392[/url]
[img]http://dl.iteye.com/upload/attachment/532307/5847c6f7-2645-3c6f-abc5-038a10d5f996.png[/img]
使用SAX将这个XML全部读取到一个List中,然后点一下就从List中取出来一个展示在TextView中,这代码神马的就用不着上了吧... :lol:
这个挺简单的~哈
首先在onCreate()方法中赋值
[code="java"]
TextView myText = (TextView)findViewById(R.id.myText);
myText.setText(R.string.d1);
[/code]
然后给“下一则”按钮设置点击事件
[code="java"]
Button mButton1 = (Button)findViewById(R.id.mButton1);
mButton1.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
TextView myText = (TextView)findViewById(R.id.myText);
myText.setText(R.string.d2);
}
}[/code]
然后给“上一则”按钮设置点击事件
[code="java"]
Button mButton2 = (Button)findViewById(R.id.mButton2);
mButton2.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
TextView myText = (TextView)findViewById(R.id.myText);
myText.setText(R.string.d1);
}
}[/code]
[quote]谢谢解答哈,不过我的数据是不止两个的。[/quote]
不太明白~ 能详细说下你的问题不~
哦~ 你的意思是一个一个获取 不合适,太麻烦是吧
那就需要解析XML配置文件,有多种解析方法的。
我用的比较多是Castor引擎解析,是第三方包。
可以参考我的实例
[url]Castor引擎实现XML结构的字符串->JavaBean的映射[/url]
也可以使用SAX 或者DOM解析
我博客关于SAX 或者DOM解析 简单介绍
[url]http://lerous.iteye.com/blog/646931[/url]
不好意思,链接弄错了
Castor引擎实现XML结构的字符串->JavaBean的映射
[url]http://lerous.iteye.com/blog/250335[/url]
对如小数据量,dom方式是最方便的。
xml
[code="xml"]
<?xml version="1.0" encoding="utf-8"?>
aaaaa
bbbbb
ccccc
ddddd
eeeee
[/code]
[code="java"]
public static List readXml(InputStream inStream) {
List strs = new ArrayList();
try{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(inStream);
Element root = document.getDocumentElement();
NodeList nodes = root.getElementsByTagName("string");
for(int i=0; i < nodes.getLength(); i++){
Node node =nodes.item(i);
Strings strings=new Strings();
strings.setName(node.getFirstChild().getNodeValue());
strs.add(strings);
}
}catch(Exception ex){
}
return strs;
}
[/code]