当前位置:网站首页>使用 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;
}
}
边栏推荐
猜你喜欢

第2章搭建CRM项目开发环境(数据库设计)

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

Sator推出Web3游戏“Satorspace” ,并上线Huobi

【网络攻防原理与技术】第6章:特洛伊木马

【网络攻防原理与技术】第5章:拒绝服务攻击

让保险更“保险”!麒麟信安一云多芯云桌面中标中国人寿, 助力金融保险信息技术创新发展

Sator推出Web3遊戲“Satorspace” ,並上線Huobi

Sator推出Web3游戏“Satorspace” ,并上线Huobi

With the latest Alibaba P7 technology system, mom doesn't have to worry about me looking for a job anymore

LeetCode刷题day49
随机推荐
Notes on installing MySQL in centos7
Proxmox VE重装后,如何无损挂载原有的数据盘?
电脑无法加域,ping域名显示为公网IP,这是什么问题?怎么解决?
第3章业务功能开发(安全退出)
The server is completely broken and cannot be repaired. How to use backup to restore it into a virtual machine without damage?
企业即时通讯软件是什么?它有哪些优势呢?
防火墙系统崩溃、文件丢失的修复方法,材料成本0元
Solid function learning
[Seaborn] combination chart: facetgrid, jointgrid, pairgrid
【TPM2.0原理及应用指南】 12、13、14章
The top of slashdata developer tool is up to you!!!
[Huang ah code] Why do I suggest you choose go instead of PHP?
【视频/音频数据处理】上海道宁为您带来Elecard下载、试用、教程
Skimage learning (2) -- RGB to grayscale, RGB to HSV, histogram matching
本周小贴士131:特殊成员函数和`= default`
Number of exchanges in the 9th Blue Bridge Cup finals
从DevOps到MLOps:IT工具怎样向AI工具进化?
第1章CRM核心业务介绍
What is cloud computing?
服务器彻底坏了,无法修复,如何利用备份无损恢复成虚拟机?