当前位置:  编程技术>移动开发
本页文章导读:
    ▪(9)菜单        (九)菜单 menu键触发 三种形式:普通的option menu;上下文菜单 context menu;子菜单sub menu; 创建方式:一:在xml文件中创建menu资源,二在java代码中创建;   标签 描述 menu 是其他两个标签.........
    ▪ 异常总结        错误总结 重启adb: 使用ADB工具,运行CMD,敲入如下命令 adb kill-serveradb start-server ......
    ▪ Objective-C菜鸟指南(第2版)       Objective-C初学者指南(第2版) 《Objective-C初学者指南(第2版)》基本信息原书名:Objective-C for Absolute Beginners:iPhone, iPad, and Mac Programming Made Easy,Second Edition作者: (美)贝内特(Bennett,G.) (美) 费希尔(Fish.........

[1](9)菜单
    来源: 互联网  发布时间: 2014-02-18
(九)菜单

menu键触发

三种形式:普通的option menu;上下文菜单 context menu;子菜单sub menu;

创建方式:一:在xml文件中创建menu资源,二在java代码中创建;

 

标签 描述 menu 是其他两个标签的容器,必须有一个menu标签作为该文件的根标签。 group

一个可选的标签,在该标签下的item内容分为一组,通过分组可以实现多个tiem共享属性。

tiem 创建了一个menuItem,即一个menu中单独的条目,在该标签下开可以包含menu标签,代表子菜单。

 

android自带了一些图标资源

java中使用:menu.setIcon(android.R.drawable.ic_menu_save)

xml中使用:android:icon="@android:drawable/ic_menu_sava"

 普通的option menu

一:通过xml文件创建,创建在menu文件夹下:

android默认显示2行3列6个菜单项,超过留个,则会有个more...选项。

 orderInCategory表示的是item的排序

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/item1"
        android:title="save"
        android:orderInCategory="0"/>
    <item
        android:id="@+id/item2"
        android:orderInCategory="1"  
        android:title="管理"/>
    <item
        android:id="@+id/item3"
        android:title="帮助"/>
    <item
        android:id="@+id/item4"
        android:title="信息"/>
    <item
        android:id="@+id/item5"
        android:title="分享"/>
    
    <group
        android:id="@+id/group1"
        android:menuCategory="secondary">
        <item
            android:id="@+id/groupItem1"
            android:title="删除"/>
        <item
            android:id="@+id/groupItem2"
            android:title="编辑"/>
    </group>
</menu>

 

 

创建了options menu需要覆盖onCreatOptionsMenu(Menu menu)方法。在该方法中通过MenuInflater.inflater()方法为menu加入menu资源。

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}
		
		 @Override  
		    public boolean onCreateOptionsMenu(Menu menu) {  
		         MenuInflater inflater=getMenuInflater();  
		         inflater.inflate(R.menu.activity_main, menu);  
		        return super.onCreateOptionsMenu(menu);  
		  }  
}

 

很奇怪,之前怎么都运行不了,重新创建复制代码重新编译就可以运行了。



 

 

 

通过java代码创建menu:

重写onCreateOptionsMenu方法创建一个menu,Add方法添加MenuItem

重写onOptionItemSelected方法,监听menu操作。

 

 

 

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}
		//覆盖该方法,创建menu
		 @Override  
		    public boolean onCreateOptionsMenu(Menu menu) { 
			 //通过add方法,创建一个menuItem对象,参数为组ID,ItemID,顺序,显示的文本
		         menu.add(0, 1, 1, "分享").setIcon(android.R.drawable.ic_menu_share);
		         menu.add(0, 2, 2, "保存").setIcon(android.R.drawable.ic_menu_save);
				return super.onCreateOptionsMenu(menu);
		  }  
		 //监听menu点击事件
		 public boolean onOptionsItemSelected(MenuItem item){
			//根据id判断点击的位置
			 if(item.getItemId()==1)
			 {
				 Toast.makeText(this, "你点击了分享", Toast.LENGTH_LONG).show();
			 }
			 else if(item.getItemId()==2)
			 {
				 Toast.makeText(this, "你点击了保存", Toast.LENGTH_LONG).show();		
			 }
			 return super.onOptionsItemSelected(item);
		 }
}

 
 
 



 

子菜单SubMenu:

xml中创建:在item标签下包含新的menu标签。menu下的内容为子菜单。

java代码创建:

 

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.SubMenu;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}
		//覆盖该方法,创建menu
		 @Override  
		    public boolean onCreateOptionsMenu(Menu menu) { 
			 //通过add方法,创建一个menuItem对象,参数为组ID,ItemID,顺序,显示的文本
		         menu.add(0, 1, 1, "分享").setIcon(android.R.drawable.ic_menu_share);
		         menu.add(0, 2, 2, "保存").setIcon(android.R.drawable.ic_menu_save);
		         //创建子菜单,创建submenu对象,该对象调用add方法创建子菜单条目
		         SubMenu subMenu=menu.addSubMenu(1, 10, 10, "编辑");
		         subMenu.setIcon(android.R.drawable.ic_menu_edit);
		         //增加子菜单条目
		         subMenu.add(2, 11, 11, "增加");
		         subMenu.add(2, 11, 11, "减少");
				return super.onCreateOptionsMenu(menu);
		  }  
}

 


点击编辑:

 

 

上下文菜单 context menu:

长按某选项弹出的菜单。

为任何的view绑定一个context menu,不过用的最多的是在listview中为listview的条目绑定一个contextmenu。不小心extends 成了Activity造成后面很多错误。

 

 

import android.app.ListActivity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.ArrayAdapter;
import android.widget.Toast;

public class MainActivity extends ListActivity 
{
	private static final String[] strs=new String[]{
		"first","second","third","fourth","fifth"};
	public static final int CONTEXT_MENU_1=Menu.FIRST;
	public static final int CONTEXT_MENU_2=Menu.FIRST+1;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) 
	{
		super.onCreate(savedInstanceState); 
		//绑定适配器
		setListAdapter(new ArrayAdapter<String>
		(this, android.R.layout.simple_list_item_1,strs));
		registerForContextMenu(getListView());
	}
	
	
	//创建menu
	public void onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo menuInfo){
		super.onCreateContextMenu(menu, v, menuInfo);
		menu.add(0, CONTEXT_MENU_1, 1, "Context Menu 1");
		menu.add(0, CONTEXT_MENU_2, 2, "Context Menu 2");
		menu.setHeaderTitle("context Menu Title");//设置菜单标题
	}
	
	
	//响应menu选择事件
	public boolean onContextItemSelected(MenuItem item)
	{
		//获得listview的itemID
		AdapterContextMenuInfo info=(AdapterContextMenuInfo)item.getMenuInfo();
		switch(item.getItemId())
		{
		case 1:Toast.makeText(this, "你点击了第一项", Toast.LENGTH_LONG).show();
		case 2:Toast.makeText(this, "你点击了第二项", Toast.LENGTH_LONG).show();	
		}
		return super.onContextItemSelected(item);
	}
}

 

 

 

 



 点击其中一项:



 


    
[2] 异常总结
    来源: 互联网  发布时间: 2014-02-18
错误总结

重启adb:

使用ADB工具,运行CMD,敲入如下命令

adb kill-server

adb start-server


    
[3] Objective-C菜鸟指南(第2版)
    来源: 互联网  发布时间: 2014-02-18
Objective-C初学者指南(第2版)

《Objective-C初学者指南(第2版)》
基本信息
原书名:Objective-C for Absolute Beginners:iPhone, iPad, and Mac Programming Made Easy,Second Edition
作者: (美)贝内特(Bennett,G.) (美) 费希尔(Fisher,M.) (美)利斯(Lees,B.) [作译者介绍]
丛书名: 图灵程序设计丛书
出版社:人民邮电出版社
ISBN:9787115293558
上架时间:2012-9-29
出版日期:2012 年10月
开本:16开
页码:1
版次:1-1
所属分类: 计算机


更多关于 》》》《Objective-C初学者指南(第2版) 》
内容简介
书籍
计算机书籍
  近年来,移动开发热潮席卷全球,苹果公司推出的ios 因其强大而完备的功能成为移动开发首选平台。要想踏上苹果移动应用开发之旅,了解objective-c 编程语言和ios 的特性是重中之重,本正是为此而写。
  《objective-c初学者指南(第2版)》由浅入深地讲解了面向对象编程的基本概念、objective-c 的语法和语言特性,以xcode 集成开发环境的使用方法。本书注重实践,包含大量示例代码以及图示,鼓励开发者自己动手编写程序。每章结尾的习题会帮助读者巩固所学的知识。
  《objective-c初学者指南(第2版)》是objective-c 入门的上乘指南,是移动应用爱好者的首选参考图书。
目录
《objective-c初学者指南(第2版)》
第1章  成为优秀的ios或mac 程序员    1
1.1  像开发人员一样思考    1
1.2  完成开发周期    4
1.3  面向对象编程简介    5
1.4  操纵alice界面    7
1.5  总结    9
1.6  习题    9
第2章  编程基础    10
2.1  和alice一起漫游仙境    10
2.1.1  导航菜单    11
2.1.2  世界窗口    11
2.1.3  alice中的类、对象和实例    13
2.1.4  对象树    14
2.1.5  编辑区域    14
2.1.6  细节区域    15
2.1.7  事件区域    15
2.2  创建一个alice应用——登月    16
2.3  你的第一个objective-c程序    20
2.4  总结    26

.2.5  习题    27
第3章  关于数据    28
3.1  编程中用到的数字系统    28
3.1.1  比特    28
3.1.2  字节    30
3.1.3  十六进制计数    31
3.1.4  unicode    32
3.2  数据类型    32
3.3  在alice中使用变量和数据类型    33
3.4  数据类型与objective-c    40
3.5  确定问题所在    44
3.6  总结    45
3.7  习题    45
第4章  程序流的决策与计划    46
4.1  布尔逻辑    46
4.1.1  真值表    47
4.1.2  比较运算符    49
4.2  应用设计    49
4.2.1  伪代码    50
4.2.2  设计需求    51
4.2.3  流程图    54
4.2.4  示例应用的设计和流程图    55
4.2.5  应用的设计    55
4.2.6  使用循环来重复程序语句    56
4.3  示例应用在alice中的程序实现    58
4.4  示例应用在objective-c中的程序实现    60
4.4.1  嵌套的if语句和else-if语句    62
4.4.2  删掉多余字符    62
4.4.3  通过重构改善代码    63
4.4.4  运行应用    63
4.5  和alice道别    64
4.6  总结    64
4.7  习题    65
第5章  基于objective-c的面向对象编程    66
5.1  对象    66
5.2  什么是类    67
5.3  类的设计    68
5.3.1  属性的设计    68
5.3.2  方法的设计    70
5.3.3  类的实现    71
5.4  继承    76
5.5  为什么使用oop    77
5.5.1  它无处不在    77
5.5.2  消除冗余代码    77
5.5.3  方便调试    77
5.5.4  方便替换    78
5.6  高阶课题    78
5.6.1  接口    78
5.6.2  多态    78
5.7  总结    78
5.8  习题    79
第6章  学习objective-c和xcode    80
6.1  objective-c简史    80
6.2  理解语言的符号    81
6.3  面向对象概念    82
6.4  用xcode再写一个程序    86
6.5  总结    98
6.6  习题    99
第7章  objective-c的类、对象及方法    100
7.1  创建objective-c类    100
7.1.1  声明接口和实例变量    101
7.1.2  发送消息(方法)    102
7.1.3  实现文件的使用    104
7.1.4  方法的编码    105
7.2  新类的使用    106
7.2.1  创建项目    106
7.2.2  添加对象    109
7.2.3  完成实现文件    111
7.2.4  创建用户界面    113
7.2.5  连接代码    116
7.2.6  运行程序    120
7.2.7  充分发挥类方法的作用    121
7.3  访问xcode文档    121
7.4  总结    122
7.5  习题    122
第8章  objective-c编程基础    123
8.1  集合类    123
8.1.1  使用nsset    124
8.1.2  使用nsarray    125
8.1.3  nsdictionary    126
8.1.4  确定集合元素的类型    127
8.2  使用可变类    127
8.2.1  nsmutableset    127
8.2.2  nsmutablearray    128
8.2.3  nsmutabledictionary    129
8.3  创建bookstore应用程序    130
8.4  引入实例变量    134
8.4.1  访问实例变量    134
8.4.2  使用获取方法和设置方法    135
8.5  引入属性    137
8.5.1  属性的使用    138
8.5.2  理解惯例的重要性    139
8.6  完成mybookstore程序    139
8.6.1  创建视图    140
8.6.2  添加实例变量    141
8.6.3  添加描述    142
8.6.4  创建一个简单的数据模型类    144
8.6.5  更改masterviewcontroller    147
8.6.6  更改detailviewcontroller    151
8.7  总结    152
8.8  习题    152
第9章  比较数据    153
9.1  复习布尔逻辑    153
9.2  使用关系操作符    154
9.2.1  比较数值    154
9.2.2  创建示例xcode应用    155
9.3  使用布尔表达式    158
9.3.1  比较字符串    159
9.3.2  比较日期    161
9.3.3  比较的结合    163
9.4  使用switch语句    164
9.5  总结    165
9.6  习题    166
第10章  创建用户界面    167
10.1  理解interface builder    168
10.2  模型?视图?控制器    168
10.3  人机交互界面准则(hig)    170
10.4  用interface builder创建iphone示例应用    171
10.4.1  使用interface builder    174
10.4.2  dock    175
10.4.3  库    176
10.4.4  查看器窗格和选择器工具条    177
10.4.5  创建视图    177
10.4.6  使用插口    179
10.4.7  连接动作和对象    180
10.4.8  实现文件    181
10.5  总结    182
10.6  习题    182
第11章  数据存储    183
11.1  存储注意事项    183
11.2  首选项    183
11.2.1  首选项的写操作    184
11.2.2  首选项的读操作    185
11.3  数据库    185
11.4  在数据库中存储信息    185
11.5  开始使用core data    186
11.6  模型    188
11.6.1  受控对象上下文    194
11.6.2  设置界面    194
11.7  总结    199
11.8  习题    200
第12章  协议和委托    201
12.1  多继承    201
12.2  理解协议    202
12.3  理解委托    203
12.4  下一步    204
12.5  总结    205
第13章  内存、地址和指针    206
13.1  理解内存    206
13.1.1  比特、字节和基数    207
13.1.2  十进制转换为二进制    207
13.1.3  使用十六进制的计数法    208
13.2  理解内存地址的基础    210
13.3  内存的分配    213
13.4  解除分配内存    215
13.5  在objective-c中用arc管理内存    217
13.6  没有arc的objective-c内存管理    219
13.6.1  使用保留/释放模型    220
13.6.2  处理隐含的保留消息和自动释放    221
13.6.3  发送dealloc消息    222
13.7  如果出了问题    223
13.8  arc注意事项    224
13.9  总结    224
13.10  习题    225
第14章  xcode调试器    226
14.1  准备调试    226
14.1.1  设置断点    227
14.1.2  使用断点导航器    228
14.1.3  调试基础    230
14.1.4  使用调试器控件    231
14.1.5  使用单步控件    232
14.1.6  查看线程窗口和调用栈    233
14.1.7  变量的调试    234
14.2  处理代码错误和警告    235
14.3  总结    239

本图书信息来源:中国互动出版网


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
操作系统 iis7站长之家
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3