使用字符串(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);
}
} 

如何在android的XML和java代码中引用字符串常量相关推荐

  1. Android如何在java代码中设置margin

    Android如何在java代码中设置margin,也就是组件与组件之间的间距. 代码中设置: LinearLayout.LayoutParams params = new LinearLayout. ...

  2. Eclipse Android项目 为控件添加了Id,但是在Java代码中提示xxx cannot be resolved or is not a field

    在Android开发过程中,常需要在布局文件中为控件添加Id,以便在Java代码中找到这个控件. 但在使用Eclipse进行开发的过程中,常会出现明明已经在Layout XML文件中为组件添加了Id, ...

  3. xml与java代码相互装换的工具类

    2019独角兽企业重金招聘Python工程师标准>>> 这是一个java操作xml文件的工具类,最大的亮点在于能够通过工具类直接生成xml同样层次结构的java代码,也就是说,只要你 ...

  4. android中在java代码中设置Button按钮的背景颜色

    android中在java代码中设置Button按钮的背景颜色 1.设置背景图片,图片来源于drawable: flightInfoPanel.setBackgroundDrawable(getRes ...

  5. 如何在java代码中读取配置文件

    在日常开发过程中,我们经常需要拼接一些字符串之类的东西,而这些字符串往往是不变的,或者在java代码中多次使用到的.当然我们可以在java代码中写死,但是这样做的缺点也是有目共睹的,一旦业务需求发生变 ...

  6. java relativelayout,在java代码中设置RelativeLayout

    我很难让两个文本视图在我的Java代码中出现在彼此的顶部. 这是我正在试验的代码: /** Called when the activity is first created. */ @Overrid ...

  7. 你还在 Java 代码中写 set/get 方法?赶快试试这款插件吧!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:Mr.ml https://blog.csdn.net/Ma ...

  8. java代码中fastjson生成字符串和解析字符串的方法和javascript文件中字符串和json数组之间的转换方法...

    1.java代码中fastjson生成字符串和解析字符串的方法 List<TemplateFull> templateFulls = new ArrayList<TemplateFu ...

  9. idea自动生成get set_CTO:不要在Java代码中写set/get方法了,逮一次罚款

    前言 what?你的 Java 代码中还充斥着大量的 set/get 方法? 我们在刚开始学习 Java 语言的时候讲过,面向对象的三大特征就是封装,继承,和多态.在 Java 中,要保证封装性,需要 ...

最新文章

  1. 在win7怎么使用linux指令,Win7系统的Powershell命令怎么使用
  2. 跨平台的 .NET 运行环境 Mono 3.2 新特性
  3. MySQL datetime类型字段的毫秒四舍五入
  4. flutter 实现不可滚动的ListView构建器
  5. university of liverpool writing techniques
  6. 如何用 Python 快速抓取 Google 搜索?
  7. 生产者消费者 java实现_Java生产者消费者的三种实现
  8. PTA:6-8 数组元素的区间删除 (20 分)
  9. 雅虎扫描用户电子邮件,欧盟不干了:侵犯隐私!
  10. 高效办公必备神器-Keychron键盘,值得拥有
  11. 我为什么关注范冰冰和苍井空
  12. 印象笔记 离线版_印象笔记离线版
  13. smart原则_绩效指标如何设定?SMART原则轻松搞定
  14. 微信公众号平台js逆向分析
  15. 利用高德api定位当前位置
  16. Python 3 迁移怨声载道
  17. 【大学物理·静止电荷的电场】电容器的电容
  18. android yuv旋转,针对移动端摄像头yuv旋转、裁剪、镜像、格式转换算法的实现
  19. IntelliJ Idea SpringBoot 数据库增删改查实例
  20. 2.3 数值分析: 矩阵三角分解法

热门文章

  1. Hulu 视频QoS优化策略
  2. 张军:围绕“WebRTC+AI+大数据”创新
  3. Zookeeper知识点详解
  4. 你真的知道怎么实现一个延迟队列吗 ?
  5. 4分钟训练ImageNet!腾讯机智创造AI训练世界纪录
  6. dlopen dlsym dlclose加载动态链接库
  7. calico 跨主机容器网络通信
  8. Spark 2.2.0 集群部署
  9. tmux 如何自定义背景颜色 | How does the tmux color palette work?
  10. 多线程与高并发(八):ThreadPoolExecutor源码解析, SingleThreadPool,CachedPool,FixedThreadPool,ForkJoinPoll 等