`
wayfarer
  • 浏览: 298387 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Create Menu

阅读更多

Most applications include two kinds of human-computer interactive: Views and Menu.

 

1. options menu

options menu最多只能在屏幕最下面显示6个菜单选项,称为icon menu,icon menu不能有checkable选项。多于6的菜单项会以more icon menu来调出,称为expanded menu。options menu通过activity的onCreateOptionsMenu来生成,这个函数只会在menu第一次生成时调用。任何想改变options menu的想法只能在onPrepareOptionsMenu来实现,这个函数会在menu显示前调用。onOptionsItemSelected 用来处理选中的菜单项。

(1) options_menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
	<group>
		<item android:id="@+id/item1" 
			android:title="Item1"
			android:icon="@android:drawable/ic_dialog_alert"
		/>
		<item android:id="@+id/item2" 
			android:title="Item2"
			android:icon="@android:drawable/ic_dialog_info"
		/>
	</group>
	<group>
	</group>
</menu>

 (2)MainActivity.java

public class MainActivity extends Activity {
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
	}
	
	public boolean onCreateOptionsMenu(Menu menu) {
		MenuInflater inflater = getMenuInflater();
		inflater.inflate(R.menu.options_menu, menu);
		
		MenuItem m1 = menu.findItem(R.id.item1);
		MenuItem m2 = menu.findItem(R.id.item2);
		// m1.setIntent(intent1);
		// m2.setIntent(intent2);
		
		return super.onCreateOptionsMenu(menu);
	}

	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
		case R.id.item1:
			// actionClickMenuItem1();
			break;
		case R.id.item2:
			// actionClickMenuItem2();
			break;
		}
		return super.onOptionsItemSelected(item);
	}

}
 

2. sub menus(暂时发现,这个menu没有办法添加icon)

public class MainActivity extends Activity {
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
	}
	
	public boolean onCreateOptionsMenu(Menu menu) {
		SubMenu m1 = menu.addSubMenu("SubM1");
		SubMenu m2 = menu.addSubMenu("SubM2");
		MenuItem m1_sub1 = m1.add("m1_1");
		MenuItem m1_sub2 = m1.add("m1_2");
		m2.add(0, 0, 0, "m2_2");
		m2.add(0, 1, 0, "m2_2");
		
		m1_sub1.setIcon(getResources().getDrawable(R.drawable.ic_dialog_alert)); // 不起任何作用
		m1_sub2.setIcon(R.drawable.ic_dialog_info); // 不起任何作用
		return super.onCreateOptionsMenu(menu);
	}

	public boolean onOptionsItemSelected(MenuItem item) {
		if (item.getItemId() == 0) {
		} else if (item.getItemId() == 1) {
		}
		return super.onOptionsItemSelected(item);
	}
}

 

3. context menu ( context menu需要在view上按上2s后显示 )

context menu是跟某个具体的view绑定在一起的。

Step 1:
>>调用"registerForContextMenu( view )", 去注册会弹出Context Menu的view.
Step 2:
>>实现"onCreateContextMenu( ContextMenu menu, View v, ContextMenuInfo menuInfo )"方法, 你可以根据View的值来判断是要激活哪个view的contex menu.
Step 3:
>> 实现"onContextItemSelected( MenuItem item )", 当选择了Context Menu中一个菜单项后, 系统会调用这个方式, 你可以透过ID来知道是哪一个menu item被选择了.

public class MainActivity extends Activity {
	private TextView tv;
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		tv = (TextView) findViewById(R.id.main_tv);
		registerForContextMenu(tv);
	}
	public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
		if (v == tv) {
			menu.add(0, 0, 0, "Context Menu One");
			menu.add(0, 1, 0, "Context Menu Two");
			
			//同sub menu一样,同样无法赋予icon
		}
	}
	public boolean onContextItemSelected(MenuItem item) {
		if (item.getItemId() == 0) {
			tv.setText("Click Context Menu One");
		} else if (item.getItemId() == 1) {
			tv.setText("Click Context Menu Two");
		}
		return super.onContextItemSelected(item);
	}
}
 

4

  • 大小: 8.4 KB
分享到:
评论
2 楼 jwx0925 2010-06-05  
adamli007 写道
请问怎样使menu整体居中,菜单上下显示?

context menu就是实现的这个功能吧
1 楼 adamli007 2010-04-21  
请问怎样使menu整体居中,菜单上下显示?

相关推荐

    create menu for flex .

    menu = Menu.createMenu(this, tree_createMenuItems(), false); // 设置菜单的图标字段和标签字段 menu.iconField = "itemIcon"; menu.labelField = "label"; menu.variableRowHeight = true; // 添加菜单项...

    Android代码-bottomify-navigation-view

    Create a menu file below resource folder. Right click to res then New &gt; Android Resource File, type a file name and make sure you choose ResourceType as Menu. Here is a sample menu file. You can add ...

    14 系统菜单设计.zip_CVI_CVI c++_cvi menu bar_系统菜单

    2. **添加菜单栏**:在CVI中,我们可以通过`LabWindows/CVI User Interface Library`中的`Create Menu Bar`函数来创建一个空的菜单栏。这个函数将返回一个菜单栏句柄,供后续操作使用。 3. **添加菜单项**:接下来...

    PB动态生成菜单源码

    Menu menu = Create Menu MenuItem item = Create MenuItem item.Text = "新建" item.Event = "New_Click" menu.AddObject(item) ``` 通过以上讲解,我们可以看出PB动态生成菜单源码是PB开发中的一个重要技巧...

    动态创建与读取菜单源码

    Menu myMenu = Create Menu ``` 2. **创建菜单项**:接着,你需要为菜单创建MenuItem对象。这可以通过调用Menu对象的`AddItem`方法完成,传入菜单项的文本和可能的快捷键。 ```pb MenuItem myMenuItem = ...

    mapbasic实现mapinfo菜单编制

    Create Menu 语句可创建全新的菜单或重新定义已有的菜单; Create Menu Bar语句可创建用户自己的菜单项 Alter Menu 语句可增加或删除菜单项; Alter Menu Bar语句可增加或删除菜单项; ****Alter Menu Bar Add "","...

    wordpress主题自定义导航菜单操作使用方法

    在这里,用户可以添加新的 Menu Name,然后点击 Create Menu 按钮,激活新的菜单。 添加菜单项目 在创建新菜单后,用户可以选择要显示的页面、分类或自定义链接等项目,然后点击 Add to Menu 按钮,将其添加到右侧...

    计算机二级VisualFoxPro上机考试题库与答案解析27.docx

    2. 快捷菜单创建:使用`CREATE MENU menu_quick`命令创建快捷菜单,然后在菜单设计器中添加“查询”和“修改”菜单项。在表单myform的RightClick事件中,通过`DO menu_quick.mpr(5)`调用快捷菜单。 三、综合应用 ...

    MapBasic编程2[借鉴].pdf

    Create Menu "环境" As "监测 &I" Calling prg1, "评价 &A" Calling prg2, "预测 &P" Calling prg3, "查询 &S" Calling prg4 Alter Menu Bar Add "环境", 3 Alter Menu "环境" Remove "浏览 &B", "绘图 &M", 2 Alter...

    在数据窗口中使用右键菜单

    menu = Create Menu menu = GetMenu("你的菜单资源名") PopupMenu(menu, MouseX(), MouseY()) ``` 3. **处理菜单项的点击事件**:为每个菜单项定义一个事件处理程序,比如“编辑”菜单项的“点击”事件。在事件...

    VFP数据库菜单第14章ppt课件.ppt

    - **使用CREATE MENU命令** 直接在命令窗口或程序中创建菜单,指定菜单名称。 3. **CREATE MENU命令** - 这个命令用于动态创建菜单,可以指定菜单文件名或使用问号打开创建对话框。 - 参数`FileName`用于指定...

    计算机二级VF15套题库三.pdf

    - **创建菜单**:使用`CREATE MENU`命令可以创建新菜单,如`CREATE MENU my`创建名为my的菜单。 - **菜单项和子菜单**:在菜单设计器中,可以通过设置“结果”下拉框来指定菜单项的行为,如选择"子菜单"创建子菜单...

    MapBasic系统开发

    这通过添加一个新的子过程`My_Exit`来实现,该过程仅包含一条语句`Create menu bar as default`,这将重建MapInfo的默认菜单栏。 2. **对话框设计**: - 学生需要在"信息查询"菜单下的条件查询对话框中修改查询...

    计算机二级VisualFoxPro上机考试题库与答案解析2.docx

    - 使用`CREATE MENU`命令创建名为`menu_rate`的菜单,包含“查询”和“退出”两个菜单项。 - “查询”菜单项下创建子菜单,包含“日元”,“欧元”和“美元”。子菜单项需设置为“菜单项#”类型。 - “退出”菜单...

    计算机二级VFP菜单设计与应用习题及答案.pdf

    6. **菜单操作**:创建和修改菜单的命令包括`CREATE MENU`、`MODIFY MENU`和`OPEN MENU`。A和C选项是正确的,B选项不正确,因为`MODIFY MENU`是用来修改已有的菜单,而不是创建新菜单;D选项也是错误的,`OPEN MENU`...

    《Visual FoxPro 数据库应用教程》教学课件:第8章 菜单设计与应用.ppt

    3. 使用命令`CREATE MENU`或`MODIFY MENU 文件名 &gt;`来创建或修改菜单。 在设计菜单后,我们需要进行以下步骤: - **定义菜单**:添加菜单项,设置它们的属性如文字、快捷键、图标等。 - **生成菜单程序**:选择...

    XTToolkitPro使用初探.doc

    TRACE0("Failed to create menu bar.\n"); return -1; // fail to create } CXTPToolBar* pToolBar = (CXTPToolBar*)pCommandBars-&gt;Add(_T("Standard"), xtpBarTop); if (!pToolBar || !pToolBar-&gt;LoadToolBar...

Global site tag (gtag.js) - Google Analytics