android xml t,安卓读取XML - MarioT的个人空间 - OSCHINA - 中文开源技术交流社区

在前面讲到了读取txt文件的操作,下面说的是读取xml文件

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context=".MainActivity" >

android:id="@+id/button"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/button"/>

android:id="@+id/text"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignLaeft="@+id/button"

android:layout_alignRight="@+id/button"

android:layout_below="@+id/button" />

XML的位置:res下新建xml文件夹,在里面创建test.xml,如果直接创建在res下,xml会报错

Java代码:

package com.example.readxml;

import java.io.IOException;

import org.xmlpull.v1.XmlPullParserException;

import android.app.Activity;

import android.content.res.Resources;

import android.content.res.XmlResourceParser;

import android.os.Bundle;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.TextView;

import com.example.readxml.R;

public class MainActivity extends Activity {

private TextView myTextView;

private Button myButton;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

myTextView=(TextView)findViewById(R.id.text);

myButton=(Button)findViewById(R.id.button);

//设置监听

myButton.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

//设置定时器

int counter=0;

//实例化StringBuilder

StringBuilder sb=new StringBuilder("");

//得到Resource资源

Resources r=getResources();

XmlResourceParser xrp=r.getXml(R.xml.test);

try {

while (xrp.getEventType()!=XmlResourceParser.END_DOCUMENT) {

//如果是开始标签

if(xrp.getEventType()==XmlResourceParser.START_TAG){

//获取标签名称

String name=xrp.getName();

//判断标签名称是否是friend

if(name.equals("friend")){

counter++;

//获取标签属性追加到StringBuilder中

sb.append("第"+counter+"个朋友的信息:"+"\n");

sb.append(xrp.getAttributeValue(0)+"\n");

sb.append(xrp.getAttributeValue(1)+"\n");

sb.append(xrp.getAttributeValue(2)+"\n");

sb.append(xrp.getAttributeValue(3)+"\n");

}

}else if(xrp.getEventType()==XmlResourceParser.END_TAG){

}else if(xrp.getEventType()==XmlResourceParser.TEXT){

}

xrp.next();

}

myTextView.setText(sb.toString());

} catch (XmlPullParserException e) {

// TODO: handle exception

e.printStackTrace();

}catch (IOException e) {

// TODO: handle exception

e.printStackTrace();

}

}

});

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值