当前位置:网站首页>使用 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;
}
}
边栏推荐
猜你喜欢
PLC: automatically correct the data set noise, wash the data set | ICLR 2021 spotlight
第2章搭建CRM项目开发环境(搭建开发环境)
测试用例管理工具推荐
网络攻防复习篇
【TPM2.0原理及应用指南】 12、13、14章
Biped robot controlled by Arduino
What is cloud computing?
Reflections on "product managers must read: five classic innovative thinking models"
Skimage learning (1)
麒麟信安携异构融合云金融信创解决方案亮相第十五届湖南地区金融科技交流会
随机推荐
本周小贴士#141:注意隐式转换到bool
测试用例管理工具推荐
本周小贴士131:特殊成员函数和`= default`
From Devops to mlops: how do it tools evolve to AI tools?
服务器彻底坏了,无法修复,如何利用备份无损恢复成虚拟机?
无法链接远程redis服务器(解决办法百分百)
Leetcode brush questions day49
【TPM2.0原理及应用指南】 1-3章
【可信计算】第十三次课:TPM扩展授权与密钥管理
【饭谈】如何设计好一款测试平台?
What is cloud computing?
Is AI more fair than people in the distribution of wealth? Research on multiplayer game from deepmind
How to choose the appropriate automated testing tools?
[Seaborn] implementation of combined charts and multi subgraphs
Devops' operational and commercial benefits Guide
L1-025 正整数A+B(Lua)
LeetCode 1986. The minimum working time to complete the task is one question per day
Sator launched Web3 game "satorspace" and launched hoobi
网络攻防复习篇
MySQL usage notes 1