字符串资源
1.定义字符串资源文件<string>
2.使用字符串资源:①在xml文件中,②在java文件中
在左侧Android-demo-res-strings.xml中便可找到
name就是字符串资源的名称
<string name="app_name">内容</string>
//定义字符串资源:开始标记和结束标记之间就可以添加字符串资源的内容,内容为显示在电脑屏幕的文字
布局文件的打开:Android-demo-res-layout-activity_main.xml
android:text="@string/motto"//导入字符串资源到文本中
注意区分大小写
用setText();可设置文本
可以通过Resources中的getString();的方法来获取字符串资源
通过MainActivity来设置字符串资源:
TextView motto=(TextView)findViewById(R.id.motto)//设置对象并获取到文本框
motto.setText(getResources().getString(R.string.motto));//对象.方法来设置文本,参数为获取到的字符串资源
实例:实现一个windows phone风格的方格子界面,要求通过字符串资源设置文字
开发步骤:1.布局界面-,2.定义字符串资源,3.使用字符串资源,4.使用颜色资源
第二步:在字符串资源文件中定义9个指定显示文字的字符串资源
第三步:在布局文件中为每个文本框设置文字,通过字符串资源实现
颜色资源
主要通过透明度+红绿蓝三种颜色进行表示
颜色值的定义:#透明度RGB
00或0代表完全透明,F或FF代表完全不透明
透明度也可以省略,代表完全不透明
颜色值必须是整形
选择颜色:编辑颜色的时候,在左边的行号有颜色的小色块,点击可打开拾色器选择颜色,在右上角#xxxxx就是颜色值,选择后点击choose就可选定
1.定义颜色资源文件<color>
2.使用颜色资源:①在XML文件中②在java文件中
颜色资源文件在android-res-values-colors.xml
在resources节点中设置,颜色值
name后面为颜色资源的名称
在起始标记和结束标记之间编写颜色值
andorid:background="@color/bg"//导入颜色资源到背景中
android:textColor="@color/title"//设置文字的颜色
导入颜色资源的格式:@color/
打开MainActivity:在android-demo-java-com.xxx-MainActivity
修改demo的sdk版本:在 左侧project右边有个下拉菜单栏,选择project,展开FirstProject-demo-src-build.gradle,双击打开,有个minSdkVersion 后面改一下数字
title.setTextColor(getColor(R.color.title));//为文本框设置颜色
title.setBackgroundColor(getResources().getColor(R.color.bg);//为文本框设置背景颜色
manifest注释:<!--内容-->
尺寸资源
dp:设备独立像素,在不同设备上显示的大小不同
dp应用范围:边距 组件大小
sp:可伸缩像素,可根据字体的大小进行缩放或扩大
sp应用范围:设置字体大小
①定义尺寸资源文件<dimen>
②使用尺寸资源:1.在XML文件中2.在java文件中
dimens.xml:在android-demo-res-values-dimens.xml 为尺寸资源文件,展开下拉框(节点),就有两个尺寸资源文件
dimens.xml 双击打开可编辑尺寸资源文件,为<resources>
节点为根节点
在xml上设置尺寸资源
格式:<dimen name="">字体值 </dimen>
第一个为开始标记,第二个为结束标记,内容在开始标记和结束标记中进行添加 name为字体资源的名称
尺寸值:单位加大小
布局管理器:andorid-demo-res-layout-activity_main.xml
android:textSize="@dimen/name"//设置字体大小
android:padding="@dimen/name"//设置边距
在java文件中设置尺寸资源:
主程序:android-demo-java-com.xxx-MainActivity
对象.setTextSize(getResources().getDimension(R.dimen.name));/设置文本大小,参数为获取资源内的dimension
实例:实现一个windows phone风格的方格子界面,要求通过尺寸字眼设置字体大小及边距
思路:布局界面-使用字符串资源添加文字-使用颜色资源设置背景和文字颜色-定义尺寸资源-使用尺寸资源-为布局管理器设置背景
android:layout_marginTop="@dimen/name"//在线性布局管理器中设置顶外边距
布局资源
布局资源的位置:android-demo-res-layout-activity_main.xml
根文件就是布局管理器
setContentView(R.layout.activity_main);//在MainActivity中的为指定当前activity所使用的布局资源
一个布局文件里面包含另一个布局文件:<include layout="@layout/xxx"></include>
,两个布局文件就能融为一体
数组资源
数组是具有相同数据类型的一组数据的集合
定义数组资源文件
创建数组资源文件: android-demo-res-value右键-new-values resource file
file name为array.xml
"></resources>
<array>子元素:定义普通类型数组(颜色资源,字符串资源,尺寸资源)
<integer-array>子元素:定义整形数组(十进制的整数或者十六进制的整数)
<string-array>子元素:定义字符串数组
<string-array name="listitem">
//开始标记,设置数组的名称
<item>内容</item>
//定义数组内容,可以设置多个
</string-array>
//结束标记
android:entries="@array/listitem"//指定要显示的数组对象(在xml中使用数组资源)
String[] ar=getResources().getStringArray(R.array.listitem);//定义一个字符串数组,获取资源对象的数组资源,来获取到字符串资源的数组
实例一个windows phone风格的方格子界面,要求通过数组资源指定文字
开发步骤:①布局界面②定义数组资源③使用数组资源
<integer-array name="bgcolor">
<item>0xBBE24A83</item>
<item>0XBb318AD6</item>
<item>0xBBD73943</item>
<item>0xBBE69A08</item>
<item>0xBBBD9663</item>
<item>0xBBD45ABC</item>
<item>0xBB4AA6D6</item>
<item>0xBB8064D2</item>
<item>0xBBF7A81E</item>
</integer-array> //在数组xml中创建一个用于定义背景颜色的整型数组
<string-array name="word">
<item>微信</item>
<item>通讯录</item>
<item>QQ</item>
<item>相机</item>
<item>时钟</item>
<item>备忘录</item>
<item>音乐</item>
<item>互联网</item>
<item>邮件</item>
</string-array>
//数组xml中创建一个用于定义显示文字的字符串数组
int[] tvid={R.id.textView1,R.id.textView2,R.id.textView3,R.id.textView4,R.id.textView5,R.id.textView6,R.id.textView7,R.id.textView8,R.id.textView9};//在onCreate方法前面定义一个全局整型的数组,用于保存文本框id,每个数组元素就是每个文本框的id
for(int i=0;i<9;i++){}//用for循环来为每个文本框设置背景颜色和显示文字
int [] color=geResources().getIntArray(R.array.bgcolor);定义一个整型数组,通过getResources() 方法来获取资源对象,通过getIntArray(R.array.bgcolor)方法来获取整型数组
String[] word=getResources().getStringArray(R.array.word)定义一个字符串数组,,通过getResources() 方法来获取资源对象,通过getStringArray(R.array.word)方法来获取整型数组用于储存要显示的文字
TextView tv=(TextView)findViewById(tvid[i]);//在for 循环体中获取文本框组件对象,参数为定义的数组资源对象,逐个获取文本框组件
tv.setBackgroundColor(color[i]);/在for 循环体中设置文本框组件的背景颜色,对象.方法来设置文本框组件的背景颜色,参数为定义的数组资源对象,逐个设置文本框组件的背景颜色
tv.setText(word[i]);//在for 循环体中逐个设置要显示的文字,对象.方法来设置,参数为定义的数组资源对象
源码:
布局管理器
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView1"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="136dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="161dp"
app:layout_constraintBottom_toTopOf="@+id/textView8"
app:layout_constraintEnd_toStartOf="@+id/textView3"
app:layout_constraintStart_toEndOf="@+id/textView2"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView2"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="38dp"
android:layout_marginLeft="38dp"
android:layout_marginTop="141dp"
android:layout_marginEnd="17dp"
android:layout_marginRight="17dp"
android:layout_marginBottom="26dp"
app:layout_constraintBottom_toTopOf="@+id/textView4"
app:layout_constraintEnd_toStartOf="@+id/textView1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView3"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="133dp"
android:layout_marginEnd="65dp"
android:layout_marginRight="65dp"
android:layout_marginBottom="35dp"
app:layout_constraintBottom_toTopOf="@+id/textView5"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/textView1"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView4"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="27dp"
android:layout_marginLeft="27dp"
android:layout_marginEnd="6dp"
android:layout_marginRight="6dp"
android:layout_marginBottom="10dp"
app:layout_constraintBottom_toTopOf="@+id/textView8"
app:layout_constraintEnd_toStartOf="@+id/textView5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2" />
<TextView
android:id="@+id/textView5"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="338dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/textView6"
app:layout_constraintStart_toEndOf="@+id/textView4"
app:layout_constraintTop_toBottomOf="@+id/textView3" />
<TextView
android:id="@+id/textView6"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="36dp"
android:layout_marginRight="36dp"
android:layout_marginBottom="15dp"
app:layout_constraintBottom_toTopOf="@+id/textView9"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/textView5"
app:layout_constraintTop_toBottomOf="@+id/textView3" />
<TextView
android:id="@+id/textView7"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="38dp"
android:layout_marginLeft="38dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
app:layout_constraintBottom_toBottomOf="@+id/textView8"
app:layout_constraintEnd_toStartOf="@+id/textView8"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/textView9" />
<TextView
android:id="@+id/textView8"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="13dp"
android:layout_marginRight="13dp"
android:layout_marginBottom="204dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/textView9"
app:layout_constraintStart_toEndOf="@+id/textView7"
app:layout_constraintTop_toBottomOf="@+id/textView1" />
<TextView
android:id="@+id/textView9"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="43dp"
android:layout_marginRight="43dp"
android:layout_marginBottom="198dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/textView8"
app:layout_constraintTop_toBottomOf="@+id/textView6" />
</androidx.constraintlayout.widget.ConstraintLayout>
数组资源
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer-array name="bgcolor">
<item>0xBBE24A83</item>
<item>0XBb318AD6</item>
<item>0xBBD73943</item>
<item>0xBBE69A08</item>
<item>0xBBBD9663</item>
<item>0xBBD45ABC</item>
<item>0xBB4AA6D6</item>
<item>0xBB8064D2</item>
<item>0xBBF7A81E</item>
</integer-array> //在数组xml中创建一个用于定义背景颜色的整型数组
<string-array name="word">
<item>微信</item>
<item>通讯录</item>
<item>QQ</item>
<item>相机</item>
<item>时钟</item>
<item>备忘录</item>
<item>音乐</item>
<item>互联网</item>
<item>右键</item>
</string-array>
</resources>
主程序
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
int[] tvid={R.id.textView1,R.id.textView2,R.id.textView3,R.id.textView4,R.id.textView5,R.id.textView6,R.id.textView7,R.id.textView8,R.id.textView9};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int [] color=getResources().getIntArray(R.array.bgcolor);
String[] word=getResources().getStringArray(R.array.word);
for(int i=0;i<9;i++){
TextView tv=(TextView)findViewById(tvid[i]);
tv.setBackgroundColor(color[i]);
}
}
}
Drawable资源
在res目录下的drawable
drawable-hdpi //保存高分辨率的图片
drawable-mdpi//保存中等分辨率的图片
①图片资源②stateListDrawable资源(状态列表资源)
绘制.9.png图片:
在Android文件夹下的-sdk-tools-draw9path.bat上或在AS中右击目标png图片(右键图片,提示框的下面就有生成.9.png的文件),选择create 9-patch file图片,在菜单栏中的open 9-patch中打开要操作的png图片(必须是png图片)
划分可操作区域的原则:选择连续的画面(对于某一块区域的图像,进行横向拉伸,不会变形,就是横向可操作区域,对于纵向拉伸,不会变形,就是纵向可操作区域),在四周的边缘进行拉伸就可划分可操作区域
show patches//显示切片。粉色区域为可缩放区域,是进行拉伸的;绿色的区域为内容显示区域,为 固定大小的区域,是不会被拉伸的;
删除划分的区域:按shift再点击拖动要删除的区域即可删除
保存9-png图片:再菜单栏中-File-save 9-path,文件名为 xx.9.png-保存
使用9-png图片:复制9png图片,在android studio 中-android-demo-res-drawable,ctrl+v粘贴9-png图片到drawable文件夹中-ok-ok
在布局管理器中使用9png图片:"@drawable/MR"
图片重命名:在图片中右键refactor(重构)-rename(重命名)
图片资源的命名规则:android中不允许图片资源的文件名中出现大写字母,且不能以数字开头
StateListDrawable资源(状态列表资源)
定义在XML文件中的Drawable对象,能根据状态来呈现不同的图像
创建状态列表资源文件:android-demo-res-drawable右键选择new-Drawable resource file
name=edittext_focused.xml文件-ok
根元素为selector
<item android:state_focused="true" android:color="#f60"/>
//得到焦点样式显示颜色的样式为橙色,在新建的状态列表资源文件中编辑
<item android:state_focused="false" android:color="#0a0"/>
//失去焦点显示颜色为绿色,在新建的状态列表资源文件中编辑
android:textcolor="@drawable/edittext_focused"//在布局管理器来设置状态列表资源
实例:模拟微信登录界面,要求使用9-patch图片作为按钮的背景,并让按钮背景随状态变化而改变
开发步骤:
①布局界面②创建StateListDrawable资源文件③使用StateListDrawable资源④根据是否输入密码决定登录按钮的可用状态
导入形状相同,颜色不同的两张图片,复制粘贴在drawable目录下
创建状态列表资源文件,文件名为button_enable.xml
<item android:state_enabled="true" android:drawable="@drawable/deep"/>//在状态列表资源文件,设置可用状态下,设置深色图片
<item android:state_enabled="false" android:drawable="@drawable/shallow"/>//在状态列表资源文件,设置不可用状态下,设置浅色图片
android:background="@drawable/button_enable"//为登录按钮设置背景,背景为定义的状态列表资源
final EditText editText=(EditText)findViewById(R.id.editText)//获取密码编辑框
final Button button=(Button)findViewById(R.id.btn_login);//获取登录按钮
edit
Text.addTextChangeListener(new TextWatcher(){//为密码编辑框设置文字改变监听器,来根据是否输入的密码来决定登陆按钮的可用状态\if(editText.length()>0){
button.setEnabled(true);
}else{
button.setEnabled(false);
}//判断编辑框的长度大于0的时候,设置按钮为可用状态,否则编辑框没有文件,则为不可用状态,在重写的onTextChanged的方法中进行编写
在布局管理器中的design 点击魔法棒(infer constraints)可固定布局管理器的组件,魔法棒的左边(clear all constraints)可以清理固定的布局管理器的组件
mipmap资源
mipmap一般时应用app的启动图标
android:src="@mipmap/"//在布局管理器中插入mipmap图片
mipmap和drawable的区别:mipmap用于存储应用的启动图标;drawable可以用来放置图像文件,9Patch,Shape,StateListDrawable,作为背景或者时修饰的图片
主题资源
设置窗口的整体样式
在布局管理器中的design中,有个apptheme,便能打开选择主题的窗口,来选择主题
设置不显示actionbar:在选择主题的窗口-material light-material.light.noactionbar
自定义主题资源:在android-demo-res-values-styles.xml中定义,主题资源的根目录也是<resources>
,使用<style>
标记下的<item>
标记来设置具体的样式
主题资源定义的样式设置所有或者单个activity整体的样式,不能用于单个的view组件,都是为了改变窗口外观而设置
创建样式主题:
<style name="bgTheme" parent="@style/AppTheme>
//设置主题的名称,parent为继承,继承基本主题,同时为开始标记
<item name="android:windowNoTitle">false</item>
//创建窗口有标题栏
<item name="android:windowBackground">@drawable/</item>
//设置窗口的背景,首先先导入背景图片到drawable中
</style>
//结束标记
使用样式主题:
①在androidManifest.xml中设置:在android-demo-manifests-androidmanifest.xml中,在<application标记下,android:theme="@style/name">,设置主题应用整个软件
②在java文件中设置:在android-demo-java-com.xxx-MainActivity,在setContentView(R.layout.activity_main);上方设置,setTheme(R.style.bgTheme);设置主题样式
样式资源
样式和主题的区别:主题为设置整体app或窗口的样式;样式为设置组件的样式
同样也能在res-values-styles.xml 中进行设置
定义样式资源:
<style name="title">
// 开头标记,设置样式的名称<item name="android:textSize">30sp</ltem>
//设置文字字体大小<item name="android:textColor">#06F</item>
//设置文字颜色为蓝色</style>
//设置结束标记
使用样式资源
在布局管理器中,在组件的开头与结束标记之间,style="@style/title"//设置样式资源
样式之间可以进行继承,就能继承样式的设置,例:<style name="context" parent="title">
,子样式出现与父样式一样的属性,最后的结果就是采用子样式的属性
实例:模拟今日头条的新闻页面,实现使用样式资源设置新闻内容的样式
开发步骤:
①布局界面,②定义黑色加粗的样式资源③设置标题为黑色加粗样式④定义黑色加粗并且水平居中的样式资源⑤设置图注为黑色加粗并且水平居中样式
<item name="android:textStyle">bold</item>
//设置字体为加粗
<item name="android:textColor">@color/black</item>
样式可以引用color.xml的属性(在color.xml中,#000000)
<item name="android:layout_gravity">center_horizontal</item>
//设置水平居中的样式
菜单资源
选项菜单与上下文菜单
创建菜单资源文件
先创建menu目录:在res文件夹中右键-new-directory name为menu
在menu目录上单击鼠标右键-New-Menu resource file File name为menu.xml ok
根目录为<menu /menu>,在开始标记和结束标记中间进行编辑<item android:id="message" android:title="消息"></item>
//设置菜单的id与文本
创建选项菜单
按下手机菜单键时所显示的菜单
实例:实现明日学院的选项菜单
开发步骤:
①布局界面②创建菜单资源文件③添加一个选项菜单④指定各个菜单项被选择时应做的处理
创建三个activity,一个是首页(MainActivity),一个是关于(Regard),一个是设置(settings),设置好activity所对应的布局文件
<item android:id="@+id/settings" android:title="@string/menu_title_settings"></item>
//设置菜单的id和引用字符串资源.添加设置的菜单
字符串资源:values-strings.xml中编写
<string name="menu_title_settings">设置 </string>
<string name="menu_title_regard">关于</string>
<string name="title1">qq:1872284159</string>
<string name="title2">电话:13615008550</string>
<string name="Regard_name">关于</string>
<item android:id="@+id/regard" android:title="@string/menu_title_regard"></item>
设置菜单的id和引用字符串资源.添加关于的菜单
在mainactivity中重写oncreateoptionsmenu()方法,添加一个选项菜单
重写方法:在空白处单击鼠标右键-generate-override methods 打字打上oncreateoptionsmenu可快速选择,选中后-ok,在重写的方法中
MenuInflater menuInflater=new MenuInflater(this);//创建并实例化menulnflater对象
menuInflater.inflate(R.menu.memu,menu);//解析菜单资源文件
return super.onCreateOptionsMenu(menu);//将菜单返回
第四步:重写onOptionsItemSelected()方法,指定各个菜单项被选择时,所应做的处理
switch(item.getItemId()){}//用switch语句来判断,条件时获取选中项的id,用case(情况进行判断)
case R.id.settings//如果时选中是设置菜单
Intent intent=new Intent(MainActivity.this,settings.class)//实例化intent对象进行页面跳转,第一个参数是上下文对象,第二个参数是要跳转的activity
startActivity(intent);//启动activity, 参数为传递的 intent
case R.id.regard:
Intent intent1=new Intent(MainActivity.this,Regard.class);
startActivity(intent1);
break;
//另一种情况,如果打开的是关于菜单项,就启动关于的intent
创建上下文菜单
在界面上长按时弹出的菜单
步骤:
①为组件注册天下文菜单②添加上下文菜单③指定菜单项被选择时所应做出的处理
实例:模拟微信朋友圈实现消息内容的复制,收藏,翻译,和举报的上下文菜单。
######开发步骤:
①布局界面②创建菜单资源文件③为文本框注册上下文菜单④添加一个上下文菜单⑤指定各个菜单项被选择时应做的处理
<item android:id="@+id/menu_copy" android:title="复制"></item>
<item android:id="@+id/menu_collect" android:title="收藏"></item>
<item android:id="@+id/menu_translate" android:title="翻译"></item>
<item android:id="@+id/menu_report" android:title="举报"></item>
//设置菜单的文本
第三步:为文本框注册上下文菜单
TextView introduce;//创建文本框对象
introduce=(TextView)findViewById(R.id.introduce);//获取到布局管理器中的文本框对象
registerForContextMenu(introduce);//为文本框注册上下文菜单,参数是为哪一个组件注册上下文菜单
重写onCreateContextMenu()方法,添加一个上下文菜单
解析一个菜单文件
MenuInflater inflater=new MenuInflater(this);//创建一个MenuInflater对象
inflater.inflate(R.menu.menu,menu);//对象.方法来解析一个菜单文件
删除super.onCreateContextMenu(menu, v, menuInfo);
//重写onContextItemSelected()方法,指定各个菜单项被选择时,所应做的处理
switch(item.getItemId()){}//用switch语句来判断,选择的是哪个菜单,用item.getItemId()方法来获取菜单
case R.id.menu_copy://不同情况进行讨论,如果选择的是复制的菜单
Toast.makeText(MainActivity.this,“已复制”,Toast.LENGTH_SHORT)/.show();//弹出消息提示框,提示已复制
break;//跳出循环
return true;//返回为真
主程序代码
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
TextView introduce;
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
MenuInflater inflater=new MenuInflater(this);
inflater.inflate(R.menu.menu,menu);
super.onCreateContextMenu(menu, v, menuInfo);
}
@Override
public boolean onContextItemSelected(@NonNull MenuItem item) {
switch(item.getItemId()){
case R.id.menu_copy:
Toast.makeText(MainActivity.this,"已复制",Toast.LENGTH_SHORT).show();
break;
case R.id.menu_collect:
Toast.makeText(MainActivity.this,"已收藏",Toast.LENGTH_SHORT).show();
break;
}
return true;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
introduce=(TextView)findViewById(R.id.introduce);
registerForContextMenu(introduce);
}
}
菜单资源文件代码:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_copy" android:title="复制"></item>
<item android:id="@+id/menu_collect" android:title="收藏"></item>
<item android:id="@+id/menu_translate" android:title="翻译"></item>
<item android:id="@+id/menu_report" android:title="举报"></item>
</menu>
布局管理器代码:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_copy" android:title="复制"></item>
<item android:id="@+id/menu_collect" android:title="收藏"></item>
<item android:id="@+id/menu_translate" android:title="翻译"></item>
<item android:id="@+id/menu_report" android:title="举报"></item>
</menu>