当前位置:网站首页>使用 xml资源文件定义菜单
使用 xml资源文件定义菜单
2022-07-07 15:40:00 【XLMN】
使用 xml资源文件定义菜单
新版本android已经隐藏menu按键
menu文件
xml文件
<?xml version="1.0" encoding="utf-8"?>
<TextView
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:text=“xml定文件定义菜单”
android:id="@+id/textview001"/>
java文件
public class MainActivity extends Activity {
private TextView tv;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu);
tv=findViewById(R.id.textview001);
//为文本框注册上下文菜单
registerForContextMenu(tv);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater=new MenuInflater(this);
//装填R.menu.text_menu对应的菜单,并添加到menu中
inflater.inflate(R.menu.text_menu,menu);
return super.onCreateOptionsMenu(menu);
}
//創建上下文菜单时触发该方法
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
MenuInflater inflater=new MenuInflater(this);
//装填R.menu.context,menu对应的菜单,并添加到menu中
inflater.inflate(R.menu.context,menu);
menu.setHeaderIcon(R.drawable.mia5);
menu.setHeaderTitle("请选择背景色");
super.onCreateContextMenu(menu, v, menuInfo);
}
//上下文菜单中菜单项被单击时触发该方法
@Override
public boolean onContextItemSelected(@NonNull MenuItem item) {
//勾选该菜单项
item.setChecked(true);
switch (item.getItemId()){
case R.id.red:
item.setChecked(true);
tv.setBackgroundColor(Color.RED);
break;
case R.id.green:
item.setChecked(true);
tv.setBackgroundColor(Color.GREEN);
break;
case R.id.blue:
item.setChecked(true);
tv.setBackgroundColor(Color.BLUE);
break;
} return true;
}
//菜单项被单击后的回调方法
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
if (item.isCheckable()){
//勾选该菜单项
item.setChecked(true);
}
//判断单击的是那个才行项,并针对性的做出响应
switch (item.getItemId()){
case R.id.font10:
tv.setTextSize(10*2);
break;
case R.id.font12:
tv.setTextSize(12*2);
break;
case R.id.font14:
tv.setTextSize(14*2);
break;
case R.id.font16:
tv.setTextSize(16*2);
break;
case R.id.font18:
tv.setTextSize(18*2);
break;
case R.id.red_font:
tv.setTextColor(Color.RED);
item.setChecked(true);
break;
case R.id.green_font:
tv.setTextColor(Color.GREEN);
item.setChecked(true);
break;
case R.id.blue_font:
tv.setTextColor(Color.BLUE);
item.setChecked(true);
break;
case R.id.plain_item:
Toast toast=Toast.makeText(MainActivity.this,"您单击了普通菜单项",Toast.LENGTH_SHORT);
toast.show();
break;
}
return true;
}
}
边栏推荐
- NeRF:DeepFake的最终替代者?
- 无法链接远程redis服务器(解决办法百分百)
- [source code interpretation] | source code interpretation of livelistenerbus
- mysql官网下载:Linux的mysql8.x版本(图文详解)
- Biped robot controlled by Arduino
- Jenkins发布uniapp开发的H5遇到的问题
- 【网络攻防原理与技术】第1章:绪论
- What is cloud computing?
- 本周小贴士#134:make_unique与私有构造函数
- Solid function learning
猜你喜欢
PLC:自动纠正数据集噪声,来洗洗数据集吧 | ICLR 2021 Spotlight
DevOps 的运营和商业利益指南
MRS离线数据分析:通过Flink作业处理OBS数据
【TPM2.0原理及应用指南】 1-3章
Linux 安装mysql8.X超详细图文教程
【TPM2.0原理及应用指南】 5、7、8章
[video / audio data processing] Shanghai daoning brings you elecard download, trial and tutorial
How to choose the appropriate automated testing tools?
麒麟信安加入宁夏商用密码协会
AI来搞财富分配比人更公平?来自DeepMind的多人博弈游戏研究
随机推荐
跟奥巴马一起画方块(Lua)
mysql使用笔记一
Mrs offline data analysis: process OBS data through Flink job
Is AI more fair than people in the distribution of wealth? Research on multiplayer game from deepmind
[source code interpretation] | source code interpretation of livelistenerbus
Jenkins发布uniapp开发的H5遇到的问题
麒麟信安携异构融合云金融信创解决方案亮相第十五届湖南地区金融科技交流会
专精特新软件开发类企业实力指数发布,麒麟信安荣誉登榜
第2章搭建CRM项目开发环境(数据库设计)
策略模式 - Unity
redis主从、哨兵主备切换搭建一步一步图解实现
Sator推出Web3游戏“Satorspace” ,并上线Huobi
Problems encountered in Jenkins' release of H5 developed by uniapp
Solidity函数学习
How to implement safety practice in software development stage
DevOps 的运营和商业利益指南
Flask搭建api服务
The mail server is listed in the blacklist. How to unblock it quickly?
L1-028 判断素数(Lua)
Sator launched Web3 game "satorspace" and launched hoobi