android应用开发笔记-xml数据资源使用

本文详细介绍了Android中的资源文件,包括res和assets目录的用途及如何访问各种资源类型,如常量资源、XML资源等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android中的资源文件存放在两个文件中:res和assets.assets中主要保存一般的原生文件,如MP3文件,android程序不能直接访问,必须通过AssetManager类以二进制流的形式来读取.而res中的资源可以通过R资源类直接访问.res目录下又有anim、drawable、layout、menu、raw、values和xml文件夹,分别用来保存动画、图片、布局文件、菜单、原生文件、常量值和XML文件夹.values文件夹下又分为:arrays(数组)、colors(颜色)、dimens(尺寸)、styles(样式)、string(字符串).下面开始逐个介绍各个资源的访问方式。

注:除了访问自己定义的资源,系统为我们定义了很多资源,可以通过android.R.资源文件类型.资源文件名称来获取。比如android.R.string.cancel就是“取消”,我们就没必要自己再在string文件中重复定义了。

一、常量资源访问

arrays、colors、dimens、string等常量的访问方式是相同的,也很简单,下面只介绍下访问方式,不写实例代码了,主要篇幅留给其他资源访问的介绍。

资源定义:

<resources>

<子元素 name=“元素名称”> values</子元素>

</resources>

资源获取:

java代码中:R.子元素.子元素名称(如:R.color.blue)

xml中:@[package:]子元素/子元素名称(如:@color/blue)

二、使用原始XML资源

主要方法:getResources().getXml()获得XmlResourceParser对象。

直接上代码:

android应用开发笔记(一)xml数据资源使用

test.xml代码:

<?xml version="1.0"encoding="utf-8"?>
<resources>
<customer name="tom" age="20" gender="male"email="jxt@yeah.net"/>
<customer name="jim" age="22" gender="female"email="jxt2012@yeah.net"/>
</resources>
main.xml代码:

<?xml version="1.0"encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   >
<Button
 android:id="@+id/testBtn" 
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:text="get xml res"
   />
<TextView 
 android:id="@+id/testTv"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:text="@string/hello"
   />
</LinearLayout>
XmlResActivity代码:

package com.pdf.res;

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.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class XmlResActivity extends Activity {
 Button mButton;
 TextView mTextView;
   @Override
    public voidonCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
       mButton=(Button)this.findViewById(R.id.testBtn);
       mTextView=(TextView)this.findViewById(R.id.testTv);
       mButton.setOnClickListener(new OnClickListener(){

   @Override
   public voidonClick(View v) {
    intcounter=0;
    StringBuildersb=new StringBuilder("");
    Resourcesr=getResources();
    XmlResourceParserxrp=r.getXml(R.xml.test);
    try{
     while(xrp.getEventType()!=XmlResourceParser.END_DOCUMENT){
      if(xrp.getEventType()==XmlResourceParser.START_TAG){
       Stringname=xrp.getName();
       if(name.equals("customer")){
        counter++;
        sb.append("第"+counter+"条客户消息:");
        sb.append(xrp.getAttributeValue(0)+"\n");
        sb.append(xrp.getAttributeValue(1)+"\n");
        sb.append(xrp.getAttributeValue(2)+"\n");
        sb.append(xrp.getAttributeValue(3)+"\n\n");
       }elseif(xrp.getEventType()==XmlResourceParser.END_TAG){
        
       }elseif(xrp.getEventType()==XmlResourceParser.TEXT){
        
       }
      }
      xrp.next();
     }
     mTextView.setText(sb);
    }catch(XmlPullParserExceptione){
     e.printStackTrace();
    }catch(IOExceptione){
     e.printStackTrace();
    }    
   }});
    }
}

程序截图:

android应用开发笔记(一)xml数据资源使用


注 : 上文转自别处  刚刚自己试了试 发现通过activity.getResources().getString(R.dimen.margins)就可得到xml文件里面指定的字段 activity 为上下文对象   margins  为我想要在xml文件里面获取的填充值  如<string name="margins">10dip</string>   得到的为10dip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值