使用字符串(string)资源
在一个Android工程中,我们可能会使用到大量的字符串作为提示信息。这些字符串都可以作为字符串资源声明在配置文件中,从而实现程序的可配置性。

在代码中我们使用Context.getString()方法,通过传递资源ID参数来得到该字符串,也可以在其他资源文件中引用字符串资源,引用格式为:"@string/字符串资源名称。

字符串资源XML文件的定义

我们通过表来说明字符串资源是如何定义的,包括资源的位置、XML文件的格式、获得资源的方法和引用资源的方法等。

表字符串资源得定义和使用
资源位置

res/values/strings.xml

字符串XML文件

格式

使用<?xml version="1.0" encoding="utf-8"?>

<resources>根元素

<string>子元素:<string name=

color_name>string_value</string>

获得字符串资源

的方法

Resources.getString()

引用字符串资源

的格式

Java代码中:R.string.string_nameXML文件中:@[package:]string/string_name



下面将通过一个实例来演示资源文件的用法。在该实例中用到两个字符串资源:一个在布局文件中引用;另一个在Java代码中引用。实例步骤说明如下。

在该工程的res\values\目录下,创建一个字符串资源文件stirngs.xml,内容如下所示:

Java代码:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Test Resources</string>
<string name="test_str1">从代码中引用!</string>
<string name="test_str2">从资源文件引用!</string> </resources>
在该工程的res\layout\目录下,定义一个布局文件test_string.xml。在该布局文件中添加两个TextView视图对象:第一个TextView的文本内容直接引用strings.xml文件中的资源;第二个TextView的文本内容在代码中设置。

Java代码:
<?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">
<TextView
android:text="@string/test_str1"
android:id="@+id/myTextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:text=""
android:id="@+id/myTextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
在工程的com.amaker.ch03.string包中,创建一个TestStringActivity类。在该类的onCreate()方法中,设置当前的视图布局,并获得TextView实例。通过Context.getString()方法,从字符串资源中获得字符串常量,并将其设置为TextView的文本内容。

Java代码:
package eoe.demo.string; import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import com.amaker.test.R;
/*
*
*
* @author 郭宏志
* 测试字符串资源
*/
public class TestStringActivity extends Activity {
private TextView myTextView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_string);
myTextView = (TextView)findViewById(R.id.myTextView02);
String str = getString(R.string.test_str2).toString();
myTextView.setText(str);
} }

更多相关文章

  1. Android(安卓)代码混淆(二)
  2. 网络请求框架AsyncHttpclient的简单使用
  3. Android跟风瞎混 - 1
  4. Android(安卓)MediaPlayer类详解
  5. Android编译系统中的Kconfig,Makefile,.config编译系统浅析
  6. Qt on Android: Qt 5.3.0 发布,针对 Android(安卓)改进说明
  7. android SDK升级到99报错怎么办
  8. Android(安卓)操作手机内置存储卡中的文件
  9. android XML转义字符 常用几个 网上找到

随机推荐

  1. Android绘图之LinearGradient线性渐变(9)
  2. 阿里云 centos6.3 64位机器安装android s
  3. android涔婮NI寮€鍙戞楠ゆ€荤粨
  4. Android,开源还是封闭?
  5. 比较详细的handle机制
  6. Android开发者应该深入学习的10个开源应
  7. 部署应用程序到Android手机
  8. Android入门教程(三)之----------> 导入
  9. Android Studio 从安装到配置使用
  10. Android Studio常用设置