当前位置:网站首页>使用 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;
}
}
边栏推荐
- 【源码解读】| LiveListenerBus源码解读
- Mrs offline data analysis: process OBS data through Flink job
- Linux 安装mysql8.X超详细图文教程
- [Seaborn] implementation of combined charts and multi subgraphs
- 【网络攻防原理与技术】第5章:拒绝服务攻击
- 【网络攻防原理与技术】第6章:特洛伊木马
- 跟奥巴马一起画方块(Lua)
- 【网络攻防原理与技术】第1章:绪论
- Skimage learning (1)
- Flask build API service SQL configuration file
猜你喜欢

【TPM2.0原理及应用指南】 16、17、18章

User defined view essential knowledge, Android R & D post must ask 30+ advanced interview questions

麒麟信安操作系统衍生产品解决方案 | 存储多路径管理系统,有效提高数据传输可靠性

Skimage learning (1)

责任链模式 - Unity

麒麟信安携异构融合云金融信创解决方案亮相第十五届湖南地区金融科技交流会

How to add aplayer music player in blog

mysql官网下载:Linux的mysql8.x版本(图文详解)

SlashData开发者工具榜首等你而定!!!

让保险更“保险”!麒麟信安一云多芯云桌面中标中国人寿, 助力金融保险信息技术创新发展
随机推荐
[fan Tan] after the arrival of Web3.0, where should testers go? (ten predictions and suggestions)
Solid function learning
NeRF:DeepFake的最终替代者?
On Apache Doris Fe processing query SQL source code analysis
第3章业务功能开发(安全退出)
99% 用户在 Power BI 云端报表常犯错误
麒麟信安携异构融合云金融信创解决方案亮相第十五届湖南地区金融科技交流会
策略模式 - Unity
Flask搭建api服务-生成API文档
专精特新软件开发类企业实力指数发布,麒麟信安荣誉登榜
A tour of grpc:03 - proto serialization / deserialization
第1章CRM核心业务介绍
L1-025 正整数A+B(Lua)
Notes on installing MySQL in centos7
mysql官网下载:Linux的mysql8.x版本(图文详解)
Leetcode brush questions day49
【饭谈】如何设计好一款测试平台?
到底有多二(Lua)
rpcms获取指定分类下的文章的方法
【TPM2.0原理及应用指南】 9、10、11章