Android里面怎么用XML定义菜单资源
本篇内容主要讲解“Android里面怎么用XML定义菜单资源”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android里面怎么用XML定义菜单资源”吧!
创新互联公司是一家专注于网站设计、成都网站制作与策划设计,拜城网站建设哪家好?创新互联公司做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:拜城等地区。拜城做网站价格咨询:18980820575
Android里面也可用XML定义菜单资源,菜单分两种,一种是OptionMenu(点系统"Menu"键出来),一种是ContextMenu
下面定义两种菜单XML到res\menu文件夹下
my_menu为OptionMenu
<?xml version="1。0" encoding="utf-8"?>
context.xml为ContextMenu
<?xml version="1。0" encoding="utf-8"?><!-- 定义一组单选菜单项目 --> <!-- 定义三个菜单项 -->
定义两个res\value下的xml,用来指定颜色,字体
<?xml version="1。0" encoding="UTF-8"?>#ff0000 #00ff00 #0000ff
strings.xml
Hello World, ContextMenuTest! 上下文菜单 红色 蓝色 绿色 字体大小 字体颜色 普通菜单项 10号字体 12号字体 14号字体 16号字体 18号字体
下面代码将实现两种菜单
package WangLi.Resource.MenuResTest; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.view.ContextMenu; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.TextView; import android.widget.Toast; public class MenuResTest extends Activity { /** Called when the activity is first created. */ private TextView txt; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); txt = (TextView)findViewById(R.id.txt); //为文本框注册上下文菜单 registerForContextMenu(txt); } public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflator = new MenuInflater(this); //装填R.menu.my_menu对应的菜单,并添加到menu中 inflator.inflate(R.menu.my_menu, menu); return super.onCreateOptionsMenu(menu); } //每次创建上下文菜单时都会触发该方法 public void onCreateContextMenu(ContextMenu menu,View source, ContextMenu.ContextMenuInfo menuInfo) { MenuInflater inflator = new MenuInflater(this); //装填R.menu.context对应的菜单,并添加到menu中 inflator.inflate(R.menu.context, menu); menu.setHeaderIcon(R.drawable.tools); menu.setHeaderTitle("请选择背景色"); } //上下文菜单中菜单项被单击时触发该方法 public boolean onContextItemSelected(MenuItem mi) { switch(mi.getItemId()) { case R.id.red: mi.setChecked(true); txt.setBackgroundColor(Color.RED); break; case R.id.green: mi.setChecked(true); txt.setBackgroundColor(Color.GREEN); break; case R.id.blue: mi.setChecked(true); txt.setBackgroundColor(Color.BLUE); break; } return true; } //菜单项被单击后的回调方法 public boolean onOptionsItemSelected(MenuItem mi) { //判断单击的是哪个菜单项,并针对性地做出响应 switch(mi.getItemId()) { case R.id.font_10: txt.setTextSize(10*2); break; case R.id.font_12: txt.setTextSize(12*2); break; case R.id.font_14: txt.setTextSize(14*2); break; case R.id.font_16: txt.setTextSize(16*2); break; case R.id.font_18: txt.setTextSize(18*2); break; case R.id.red_font: txt.setTextColor(Color.RED); mi.setChecked(true); break; case R.id.green_font: txt.setTextColor(Color.GREEN); mi.setChecked(true); break; case R.id.blue_font: txt.setTextColor(Color.BLUE); mi.setChecked(true); break; case R.id.plain_item: Toast toast = Toast.makeText(MenuResTest.this, "您单击了普通项菜单", Toast.LENGTH_SHORT); toast.show(); break; } return true; } }
下面是程序运行效果图,刚启动时是一个TextView
点击后,在手机屏幕下方出现OptionMenu
点击字体大小或普通菜单项,出现子菜单
选择就可改变TextView的字体
如下点击"普通菜单项",会出现一个Toast提示,过几秒就会消失
那么怎么弹出ContextMenu呢,就是对着TextView长按就可以了
选择后,背景色就改变了
到此,相信大家对“Android里面怎么用XML定义菜单资源”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
网站栏目:Android里面怎么用XML定义菜单资源
文章路径:http://scjbc.cn/article/pdegid.html