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

编程之家收集整理的这篇文章主要介绍了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

总结

以上是编程之家为你收集整理的Android 在资源文件(res/strings.xml)定义一维数组,间接定义二维数组全部内容,希望文章能够帮你解决Android 在资源文件(res/strings.xml)定义一维数组,间接定义二维数组所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢寻找一群志同道合、互帮互助的学习伙伴,可以点击下方链接加入:
编程之家官方1群
编程之家官方2群
编程之家官方3群
编程之家官方4群

相关文章

猜你在找的Android相关文章

一、什么是KMM? Kotlin Multiplatform Mobile ( KMM ) 是一个 SDK,旨在简化跨平台移动应用程序的创建。在 KMM 的帮助下,您可以在 iOS 和 Android
什么是事件?事件是用户触摸手机屏幕,引起的一系列TouchEvent,包括ACTION_DOWN、ACTION_MOVE、ACTION_UP、ACTION_CANCEL等,这些action组合后变成点
经常我们会在资源文件(res/strings.xml)定义字符串,一维数组,那定义二维数组?直接定义二维数组没找到,可以间接定义。其实很简单,看过用过一次就可以记住了,一维数组估计大家经常用到,但是二
目前手机端和服务端数据交流格式一般是json,而谷歌提供了Gson来解析json。下载Gson:https://code.google.com/p/google-gson/下载的放在lib并导入,若出
一、用KMM写Flutter插件 Google官方有一个写Flutter例子How to write a Flutter plugin,这里把Google plugin_codelab 例子改成用KM
一、利用Android提供的左右移动工具类:AnimationUtils LinearLayout ll_first = (LinearLayout) findViewById(R.id.ll_fir
这里,通过一个小demo,就可以掌握在布局容器中动态添加控件,以动态添加Button控件为例,添加其他控件同样道理。1、addView添加控件到布局容器2、removeView在布局容器中删掉已有的控
在这里,总结一下loading进度条的使用简单总结一下。一、说起进度条,必须说说条形进度条,经常都会使用到嘛,特别是下载文件进度等等,还有像腾讯QQ安装进度条一样,有个进度总给人良好的用户体验。先来找
微信公众号搜索 “ 程序精选 ” ,选择关注!
微信公众号搜 "程序精选"关注