Android 在资源文件(res/strings.xml)定义一维数组,间接定义二维数组

经常我们会在资源文件(res/strings.xml)定义字符串,一维数组,那定义二维数组?直接定义二维数组没找到,可以间接定义。

其实很简单,看过用过一次就可以记住了,一维数组估计大家经常用到,但是二维数组应该比较少用,因为只能间接定义二维数组。

数组的定义:

数组就是一次性定义相同数据类型的一组变量数组定义。

数组的特点:

1.数组是相同数据类型的元素的集合。

2.数组中的各元素是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。

3.数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素。

先来看看字符串是怎么定义的。其中,添加注释的方法:<!-- 注释内容 -->

    <!-- 字符串 -->
    <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

时间: 2024-12-21 00:58:54

Android 在资源文件(res/strings.xml)定义一维数组,间接定义二维数组的相关文章

C语言数组:C语言数组定义、二维数组、动态数组、字符串数组

1.C语言数组的概念 在<更加优美的C语言输出>一节中我们举了一个例子,是输出一个 4×4 的整数矩阵,代码如下: #include <stdio.h> #include <stdlib.h> int main() { int a1=20, a2=345, a3=700, a4=22; int b1=56720, b2=9999, b3=20098, b4=2; int c1=233, c2=205, c3=1, c4=6666; int d1=34, d2=0, d3

计算机二级-C语言-对二维数组数据进行处理。对文件进行数据输入。形参与实参。

//函数fun的功能为:计算x所指数组中N个数的平均值(规定所有数都为正数),平均值通过形参返回给主函数,将小于平均值且最接近平均值的数作为函数值返回,并输出. //重难点:形参与实参之间,是否进行了值传递. 1 #include <stdlib.h> 2 #include <stdio.h> 3 #define N 10 4 double fun(double x[],double *av) 5 { int i,j; double d,s; 6 s=0; 7 for(i=0; i

计算机二级-C语言-对标志位的巧妙使用。对二维数组数据进行处理。对文件进行数据输入。

//函数fun的功能是:计算形参x所指数组中平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于的移至后部,平均值作为返回值,在主函数中输出平均值和后移的数据. //重难点:对数组的处理. 1 #include <stdlib.h> 2 #include <stdio.h> 3 #define N 10 4 double fun(double *x) 5 { int i, j; double s, av, y[N]; 6 s=0; 7 for(i=0;

&lt;24&gt;【掌握】二维数组指针定义、初始化+

[掌握]二维数组指针定义.初始化 数组指针: 定义一个指针变量,让这个指针变量指向一维数组的元素 二维数组指针 行指针,用来指向二维数组的每一行,存放的是行的首地址 定义格式: 数据类型 (*行指针变量名)[数组第二维的长度]; 二维数组指针的初始化 int a[2][3]; int b[2][2]; float f1[4][4]; //假设我要定义一个指向数组a的一个行指针 // a = &a[0] = &a[0][0] = a[0] int (*p)[3] = a; 二维数组指针的使用

二维数组的定义

第一种格式: 1 public class Array_TwoDimension { 2 public static void main(String[] args) { 3 int[][] arr1 = new int[3][4];//定义了arr1的二维数组,表示二维数组中有3个一维数组,每个一维数组中有四个元素 4 5 arr1[0][3] = 78;//这是给二维数组中的第一个数组中的第三个角标赋值 6 7 System.out.println(arr1);//打印的是数组的地址,会比一

第三十二课 二维数组及其定义 【项目1-2】

第三十二课  二维数组及其定义 项目一 [折腾二维数组] 创建一个5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后: 通过键盘输入,使后两列的10个元素获得值: 按行序优先输出数组元素: 将所有元素值乘以3后保存在数组中: 按列序优先输出(输出的第一行是数组中的第一列--,其实输出的就是"转置"): 将数组"倒"着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出): 输出数组中的所有偶数: 输出所有行列下标之和为3的倍数的元素值

0511 二维数组定义

二维数组 数组的数组---二维数组的每一个元素是一个一维数组 定义格式 数据类型[][] 数组名 = new 数据类型[二维数组的长度/包含的一维数组的个数][每个一维数组的长度]; int[][] arr = new int[3][5];---定义了一个整型的二维数组,其中包含3个一维数组,每个一维数组可以存储5个整数 arr[0]---下标为0的位置上的一维数组 arr[1][3]---如果要获取具体的元素需要两个下标 数据类型[][] 数组名 = new 数据类型[二维数组的长度/包含的一

Android资源文件中各种XML的作用与解释

众所周知,XML是一种可扩展标记语言,它被用来传输和存储数据.在Android中也会随处可见XML文件,包括一个android项目不可缺少的AndroidManifest.xml清单文件,res资源文件目录下的anim/drawable/layout/menu/values中等,目录截图如下.其中清单文件中内容最多最复杂,完全可以在其他文章中再来讲解,所以本文主要讲解res目录下的XML的作用与内容. 一.anim目录 anim目录下的xml主要是用于android中的动画,包括Frame an

android 获取资源文件 R.drawable中的图片转换为drawable、bitmap(转载)

转载自:android 获取资源文件 R.drawable中的图片转换为drawable.bitmap 1. Resources resources = mContext.getResources();Drawable drawable = resources.getDrawable(R.drawable.a);imageview.setBackground(drawable); 2. Resources r = this.getContext().getResources();Inputstr