Android 在资源文件(res/strings.xml)定义一维数组,间接定义二维数组
经常我们会在资源文件(res/strings.xml)定义字符串,一维数组,那定义二维数组?直接定义二维数组没找到,可以间接定义。
其实很简单,看过用过一次就可以记住了,一维数组估计大家经常用到,但是二维数组应该比较少用,因为只能间接定义二维数组。
数组的定义:
数组就是一次性定义相同数据类型的一组变量数组定义。
数组的特点:
先来看看字符串是怎么定义的。其中,添加注释的方法:<!-- 注释内容 -->
<!-- 字符串 -->
<string name="hello_world">Hello world!</string>
当然在java中这样定义:String a = "Hello world"; 或者String s = new String("abcdefghijklmnopqrstuvwxyz");
一、一维数组
<!-- 一维数组 -->
<string-array name="good">
<item>a</item>
<item>b</item>
<item>c</item>
<item>d</item>
</string-array>
在java代码获取资源中的数组方法
Resources res =getResources();
// 取xml文件格式的字符数组
String[] good=res.getStringArray(R.array.good);
顺便看看在java中如何定义:String[] s = {"a","b","c","d"};
二、二维数组
到这里,你知道二维数组怎么定义么,是不是还要想一下呢,其实是不能直接在资源文件中定义二维数组的,所以只能用间接的方式来获取二维数组,多维数组一样这样间接来定义获取。
<!-- 用一维数组的方式间接定义二维数组 -->
<array name="two">
<item>a,b,c,d,e,f,g</item>
<item>h,i,g,k,l,m,n</item>
</array>
用java解析上面的一维数组为二维数组
Resources res =getResources();
// 取xml文件格式的字符数组
String[] array = res.getStringArray(R.array.two);
String[][] result = getTwoDimensionalArray(array); /**
* 按设定规则解析一维数组为二维数组
* @param array
* @return
*/
private String[][] getTwoDimensionalArray(String[] array) {
String[][] twoDimensionalArray = null;
for (int i = 0; i < array.length; i++) {
String[] tempArray = array[i].split(",");
if (twoDimensionalArray == null) {
twoDimensionalArray = new String[array.length][tempArray.length];
}
for (int j = 0; j < tempArray.length; j++) {
twoDimensionalArray[i][j] = tempArray[j];
}
}
return twoDimensionalArray;
}
这里提供的仅仅是一个方式,这样国际化多语言的时候就可以用上场。很明显,这样多了一个解析的过程,慢了很多。或者在设计上不用二维数组也行,用其他方法。可能你会觉得直接在java中定义就好了:
类似于int a[2][3]={{1,2,3},{4,5,6}};
这里只是提供一种方式,不是最好,或许你还有更好的,请留言。
本文链接:http://www.cnblogs.com/liqw/p/4181327.html
Android 在资源文件(res/strings.xml)定义一维数组,间接定义二维数组的更多相关文章
- 34.Android之资源文件res里drawable学习
我们经常看到android工程资源文件res下drawable如ldpi.mdpi.hdpi.xhdpi.xxhdpi文件,今天我们学习了解下. (1)drawable-hdpi里面存放高分辨率的图片 ...
- C语言数组:C语言数组定义、二维数组、动态数组、字符串数组
1.C语言数组的概念 在<更加优美的C语言输出>一节中我们举了一个例子,是输出一个 4×4 的整数矩阵,代码如下: #include <stdio.h> #include &l ...
- 计算机二级-C语言-对标志位的巧妙使用。对二维数组数据进行处理。对文件进行数据输入。
//函数fun的功能是:计算形参x所指数组中平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于的移至后部,平均值作为返回值,在主函数中输出平均值和后移的数据. //重难 ...
- 计算机二级-C语言-对二维数组数据进行处理。对文件进行数据输入。形参与实参。
//函数fun的功能为:计算x所指数组中N个数的平均值(规定所有数都为正数),平均值通过形参返回给主函数,将小于平均值且最接近平均值的数作为函数值返回,并输出. //重难点:形参与实参之间,是否进行了 ...
- 数组的定义和使用,理解多维数组和Array类
数组的作用 在执行程序的过程中,通常会需要存储大量数据.如果只有少量数据,那么通过声明变量,存储到变量中即可.但当我们的数据是20个.40个甚至是100以上时,就意味着需要声明很多变量,这是不现实的, ...
- 062 01 Android 零基础入门 01 Java基础语法 07 Java二维数组 01 二维数组应用
062 01 Android 零基础入门 01 Java基础语法 07 Java二维数组 01 二维数组应用 本文知识点:二维数组应用 二维数组的声明和创建 ? 出现空指针异常 数组的名字指向数组的第 ...
- Android 之 资源文件的介绍及使用
Android 之 资源文件的介绍及使用 1.资源的简单介绍: 在res文件夹中定义:字符串.颜色.数组.菜单.图片.视频等:在应用程序中使用这些资源. 2.使用资源的长处:降低代码量,同一时候为 ...
- C++ vector 实现二维数组时, 在类的头文件中定义时遇到"应输入类型符"的问题?
见下,当我在类的声明文件中定义二维vector时,提示我应输入类型说明符; 但是相同的格式定义,在类中将二维vector修改为在源文件中定义就可以顺利通过,并顺利执行打印 打印结果如下: 望大神来解惑 ...
- 从txt文件中读取数据放在二维数组中
1.我D盘中的test.txt文件内的内容是这样的,也是随机产生的二维数组 /test.txt/ 5.440000 3.4500006.610000 6.0400008.900000 3.030000 ...
随机推荐
- [转]优化wp_head()
经过对head的优化,我的博客访问速度也快了好多,在此过程中也了解到wp_head()模板函数的作用,可以再次优化,特此记录. 步骤:加入到function.phpremove_action(‘wp_ ...
- ggplot绘图学习笔记
0.查看R的系统帮助文档 标度 scale breaks, labels, limits, labs dose <- c(20, 30, 40, 45,60) drugA <- c(16, ...
- Sublime Text2 快捷键 (MAC版)
工具是人的延伸,可以把人变得更聪明更强大,人类正是学会了使用工具,才创造出现在的文明.作为程序员,工具开发.使用是其能力的重要体现,业内的大牛都是造工具的好手.目前身边很多人都在用sublime te ...
- JSP 容易弄混的几点总结
最近在做Java Web方面的整理,遇到些问题,发现自己印象也不是很深刻了,这里作下整理,以后遇到问题再更新. 一.<%@include file="页面名称"%>和& ...
- 物理学家的LOGO
原文选自Inside the Perimeter 阿那克西曼德(c. 610-546 BCE) 古希腊人,被认为是史上第一位物理学家,是有记录的认为世界按一定规律运行的第一人,做科学实验第一人,发明了 ...
- NGUI例子Scroll View场景中item添加点击后自动滑到终点
http://blog.csdn.net/luyuncsd123/article/details/22914497 最近在做一个项目的UI,需求是1.拖动items后当永远有一个item保存在中间位置 ...
- Linux 查看系统用户的登录日志
查看用户登录系统的日志 有两类日志记录用户登录的行为,一是记录登录者的数据,一个是记录用户的登录时间 一,记录用户登录数据 /var/log/wtmp日志文件记录用户登录的数据 ...
- SCOPE_IDENTITY的作用
SCOPE_IDENTITY返回插入到同一作用域中的 IDENTITY 列内的最后一个 IDENTITY 值.一个作用域就是一个模块——存储过程.触发器.函数或批处理.因此,如果两个语句处于同一个存储 ...
- linux 学习一:安装jdk和tomcat
使用secureCRT 一.首先安装centos的rzsz. 1.yum自动安装:(yum安装rzsz) yum install lrzsz 2.手动安装方法如下:(包有问题,还是采用第一种方式) 2 ...
- 43. 动态规划求解n个骰子的点数和出现概率(或次数)[Print sum S probability of N dices]
[题目] 把N个骰子扔在地上,所有骰子朝上一面的点数之和为S.输入N,打印出S的所有可能的值出现的概率. [分析] 典型的动态规划题目. 设n个骰子的和为s出现的次数记为f(n,s),其中n=[1-N ...