(2)打开默认创建的布局文件main.xml,将默认添加的TextView组件删除,然后添加一个EditText组件,该组件中通过字符串资源设置默认显示的文本,关键代码如下:
android:id="@+id/editText1"
android:text="@string/edittext"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
(3)打开res\values目录下的strings.xml文件,在该文件中创建各个菜单项标题和编辑框要显示的默认文本所需要的字符串变量,具体代码如下:
(4)在res目录中,分别创建values-zh-rCN(简体中文)和values-zh-rTW(繁体中文)文件夹,并将res\values目录下的strings.xml文件分别复制到这两个文件夹中。
(5)修改res\values-zh-rCN目录中的strings.xml文件,将要显示的字符串内容替换为对应的简体中文,修改后的关键代码如下:
(6)修改res\values-zh-rTW目录中的strings.xml文件,将要显示的字符串内容替换为对应的繁体中文,修改后的关键代码如下:
(7)在Activity的onCreate()方法中,首先获取要添加上下文菜单的文本框,然后为其注册上下文菜单,关键代码如下:
private TextView tv;
… //省略部分代码
EditText et=(EditText)findViewById(R.id.editText1); //获取编辑框组件
registerForContextMenu(et); //为编辑框注册上下文菜单
(8)在Activity的onCreate()方法中,重写onCreateContextMenu()方法,在该方法中,首先创建一个用于解析菜单资源文件的MenuInflater对象,然后调用该对象的inflate()方法解析一个菜单资源文件,并把解析后的菜单保存在menu中,关键代码如下:
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
MenuInflater inflator=new MenuInflater(this); //实例化一个MenuInflater对象
inflator.inflate(R.menu.contextmenu, menu); //解析菜单文件
}
(9)重写onContextItemSelected()方法,在该方法中,通过消息提示框显示选择的菜单项,具体代码如下:
@Override
public boolean onContextItemSelected(MenuItem item) {
Toast.makeText(this,item.getTitle(), Toast.LENGTH_SHORT).show(); //显示选择的菜单项
return true;
}
在简体中文环境中运行本实例,将显示如图8.22所示的运行结果;在繁体中文环境中运行本实例,将显示如图8.23所示的运行结果;在其他语言环境中运行本实例,将显示如图8.24所示的运行结果。
图8.22 在简体中文环境中的运行结果 图8.23 在繁体中文环境中的运行结果
图8.24 在其他语言环境中的运行结果
8.12 小 结
在Android中,将程序中经常使用的字符串、颜色、尺寸、样式、主题和菜单等通过资源文件进行管理。本章首先介绍了字符串资源、颜色资源和尺寸资源的使用,然后介绍了布局资源、数组资源、Drawable资源、样式资源和主题资源,其中,在介绍Drawable资源时,主要介绍了图片资源和StatelistDrawable资源,接下来又介绍了如何使用原始XML资源,以及如何使用菜单资源创建上下文菜单和选项菜单,最后介绍了Android程序的国际化。本章所介绍的内容,在以后的项目开发中经常应用,希望读者能很好地理解并掌握。
8.13 实践与练习
1. 编写Android项目,实现跟踪按钮状态的图片按钮。(答案位置:光盘\TM\sl\8\8.11)
2. 编写Android项目,实现带子菜单的上下文菜单。(答案位置:光盘\TM\sl\8\8.12)