android学习笔记——menu控件
来源:互联网 发布:ubantu 安装mysql 编辑:程序博客网 时间:2024/05/29 08:37
开发菜单和子菜单有两种方式;一是在Activity重写的方法onCreateOptionsMenu(Menu menu)方法中调用menu对象添加,然后在重写Activity的onOptionsItemSelected来响应选择的菜单项。二是通过资源文件 来定义菜单项,然后在onCreateOptionsMenu方法中加载这个xml资源。onCreateOptionsMenu方法在单击Menu键时 触发。
这里在资源文件中定义菜单项举例:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"tools:context=".MainActivity">
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"tools:context=".MainActivity">
<itemandroid:id="@+id/action_settings"android:title="@string/action_settings"
android:orderInCategory="100"app:showAsAction="never" />
<item
android:title="连接"
//控制选项的顺序,小上大下
android:orderInCategory="10"
android:id="@+id/connect"
//定义显示的方式,always表示可以直接看到,never表示在...中隐藏,ifRoom表示如果有位置就显示,不然就出现在右边的三个点中
//要注意的一点是下面是app:而不是android:,原因似乎是包的问题,因为我使用的是android.support.v7.app.ActionBarActivity。
app:showAsAction="always">
<menu>
//子菜单需要使用grouo进行包围,在其中可以设置子菜单的选择方式,包括,single单选,all多选,none不可选(就是没有后面的小标记了)
<groupandroid:checkableBehavior="single">
<itemandroid:id="@+id/color_red"
android:title="红"/>
<itemandroid:id="@+id/color_blue"
android:title="蓝"/>
<itemandroid:id="@+id/color_green"
android:title="绿"/>
</group>
</menu>
</menu>
然后在MainActivity中重写onCreateOptionsMenu(Menu menu)方法,将menu文件载入
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
然后重写onOptionsItemSelected(MenuItem item)方法,设置好这些点击触发事件
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
switch (item.getItemId()){
case R.id.action_settings:
Toast.makeText(getApplicationContext(),"设置",Toast.LENGTH_SHORT).show();
return true;
case R.id.connect:
Toast.makeText(getApplicationContext(),"连接",Toast.LENGTH_SHORT).show();
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
switch (item.getItemId()){
case R.id.action_settings:
Toast.makeText(getApplicationContext(),"设置",Toast.LENGTH_SHORT).show();
return true;
case R.id.connect:
Toast.makeText(getApplicationContext(),"连接",Toast.LENGTH_SHORT).show();
return true;
}
return super.onOptionsItemSelected(item);
}
使用代码的方式进行菜单的添加
重写onCreateOptionsMenu(Menu menu)方法
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0,1,Menu.NONE,"蓝牙发送").setIcon(android.R.drawable.ic_menu_send);
//添加子菜单
SubMenu subMenu = menu.addSubMenu(0,2,Menu.NONE,"重要程度").setIcon(android.R.drawable.ic_menu_share);
subMenu.add(2,201,1,"string");
return true;
}
上下文菜单(就是长按有效)ContextMenu
先写一下onCreate()中的代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//显示列表
simpleShowList();
//为所有列表项注册上下文菜单
this.registerForContextMenu(getListView());
//显示列表
simpleShowList();
//为所有列表项注册上下文菜单
this.registerForContextMenu(getListView());
}
然后我们需要在simpleShowList()中使用适配器adapter将数据与样式进行绑定并设置。
//数据适配器 simple array adapter
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,files);
//填充列表
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,files);
//填充列表
this.setListAdapter(adapter);
之后需要将onCreateContextMenu()与onContextItemSelected()两个方法重写。
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
menu.setHeaderTitle("文件操作");
menu.add(0, 1, Menu.NONE, "蓝牙发送");
menu.add(0, 2, Menu.NONE, "标记重要");
menu.add(0, 3, Menu.NONE, "重命名");
menu.add(0,4,Menu.NONE,"删除");
menu.setHeaderTitle("文件操作");
menu.add(0, 1, Menu.NONE, "蓝牙发送");
menu.add(0, 2, Menu.NONE, "标记重要");
menu.add(0, 3, Menu.NONE, "重命名");
menu.add(0,4,Menu.NONE,"删除");
}
onContextItemSelected()方法就不在这里写出了,大概都是一致的。
0 0
- android学习笔记——menu控件
- Android学习笔记-Menu
- Android学习笔记(3)——添加menu
- Android学习——Menu
- Android学习笔记之MENU
- android学习笔记之Menu
- Android学习笔记–Menu
- Android学习笔记之Menu
- Android学习笔记之Menu
- Android 学习笔记2 MENU
- 【Android学习笔记】 菜单Menu
- python Tkinter学习笔记 menu控件 02
- Cocos学习笔记——Menu
- 【android基础学习之五】——基础控件Menu,Dialog,ImageView,ImageButton
- Android课堂笔记——Menu
- Android 基础控件学习--Menu点击跳转
- Android学习笔记(9)————Android的三种Menu用法
- Android学习笔记(9)————Android的三种Menu用法
- 二维数组中的查找
- jQuery $.each用法
- android学习笔记——ListView控件
- hadoop mkdir: Cannot create directory /usr. Name node is in safe mode.
- IOS吐槽狂人:怎么导入ARV和MRC的demo
- android学习笔记——menu控件
- C++数据结构——线性表
- MyBatis快捷键提示怎么调出来
- 188 Examine the following scenario: The target database instance is running. The most recent backup
- 位操作基础应用
- android学习笔记——Toast提示消息
- 积累,总结,寻找机会,抓住机遇,挑战自我
- 【ubuntu】error: [Errno 98] Address already in use
- Cat,cp,echo 等 语句应 用