`
bk_lin
  • 浏览: 336759 次
社区版块
存档分类
最新评论

Android开发从入门到精通(8) _3

 
阅读更多

 

使用菜单 第八章(3)

  在本节中,你将建造一个应用程序来允许用户从一些不同的Views中进行选择。当用户选择一个View,一个新的活动将被启动。你将要使用给用户选择的工具就是Android菜单。看一下这个插图(略)。当用户激活菜单按钮,菜单就会显示。

    如你所见,从Android主屏幕选择菜单按钮产生一个墙纸的设定选项。你将为你的主活动创建一个类似的菜单,该菜单为View保留所有用户可以从中选择的选项。现在,AndroidViews.java文件的编码应当如下:

package android_programmers_guide.AndroidViews; 
import android.app.Activity; 
import android.os.Bundle; 
public class AndroidViews extends Activity { 
/** Called when the Activity is first created. */ 
@Override 
public void onCreate(Bundle icicle) { 
super.onCreate(icicle); 
setContentView(R.layout.main); 

}

    你增加任何东西到活动中,你需要输入包装一个包装来创建你的菜单。输入android.view.Menu到AndroidViews活动中:

Import android.view.Menu;

    要创建菜单,你需要优先活动的onCreateOptionMenu()方法。onCreateOptionMenu()方法是一个以布尔方式被呼叫的当用户第一次选择菜单按钮。你将使用这个方式来建造菜单并增加可选择的条目到其中。增加下面的代码到AndroidViews.java:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
super.onCreateOptionsMenu(menu); 
}

    你将增加代码在onCreaterOptionMenu()内增加菜单。需要增加的条目是你将要在本项目中创建的Views。下面是将要增加到菜单的清单:

● AutoComplete 自动完成 
● Button 按钮 
● CheckBox 选择框 
● EditText 
● RadioGroup 按钮组 
● Spinner 
    在前面创建的代码优先onCreateOptionsMenu()方法,你在菜单中传递一个菜单变量呼叫菜单。这个变量代表实际的在Android界面中创建的菜单条目。要增加这些条目到菜单中,你要使用menu.add()方法。这个呼叫的语句是:

menu.add(<group>,<id>,<title>) 

参数组被用来与菜单条目相关联。在本例中,你将不使用组。但是,这个值是非常重要的。参数id被用来检测哪一个菜单条目被选择。最后,参数标题是显示在菜单上的文本。

增加下列代码到onCreateOptionsMenu( )方法中:

menu.add(0, 0, "AutoComplete"); 
menu.add(0, 1, "Button"); 
menu.add(0, 2, "CheckBox"); 
menu.add(0, 3, "EditText"); 
menu.add(0, 4, "RadioGroup"); 
menu.add(0, 5, "Spinner");

    你完整的AndroidViews.java文件应当看上去像这样:

package android_programmers_guide.AndroidViews; 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
public class AndroidViews extends Activity { 
/** Called when the Activity is first created. */ 
@Override 
public void onCreate(Bundle icicle) { 
super.onCreate(icicle); 
setContentView(R.layout.main); 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
super.onCreateOptionsMenu(menu); 
menu.add(0, 0, "AutoComplete"); 
menu.add(0, 1, "Button"); 
menu.add(0, 2, "CheckBox"); 
menu.add(0, 3, "EditText"); 
menu.add(0, 4, "RadioGroup"); 
menu.add(0, 5, "Spinner"); 
return true; 

}

    如果你执行如上面代码所写,你应当看见如下图所示的菜单(略)。

    这个就是你想要达成的。试着去点击菜单中的任意一个选项。当用户选择一个菜单项目时,你在处理世间的活动中还什么都没有呢。

    你增加的方法优先处理到菜单的呼叫是onOptionsItemSelected( )。再一次,像onCreateOptionsMenu(),当菜单项被选择,onOptionsItemSelected( )是你需要优先一个拥有代码,被执行的布尔方法。优先代码应当如下:

@Override 
public boolean onOptionsItemSelected(Menu.Item item){ 
}

这个代码有个问题:当任何菜单项被选择,onOptionsItemSelected( ) 是个常规被呼叫的方法。你需要给定onOptionsItemSelected( )一条路来识别不同菜单项之间的差别并执行相应的代码。因此,使用一个switch/case 声明来帮助方法从不同的项目中选择。当你创建了菜单项,你定义了一系列的从0到5的数字作为菜单项的值。你可以在case声明中使用一个呼叫来getI()来检测哪一个菜单项被选择:

switch (item.getId()) { 
case 0: 
return true; 
case 1: 
return true; 
case 2: 
return true; 
case 3: 
return true; 
case 4: 
return true; 
case 5: 
return true; 

return true; 

    在这个case声明中,对于每一个id当前设定的动作是返回true.这个不会做任何的事情但是会保留一个开放的可以增加代码的区域。你的AndroidViews.java文件现在可以被用来创建被新菜单系统启动的活动了。完整的AndroidViews.java文件代码应当看上去如下:

package android_programmers_guide.AndroidViews; 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
public class AndroidViews extends Activity { 
/** Called when the Activity is first created. / 
@Override 
public void onCreate(Bundle icicle) { 
super.onCreate(icicle); 
setContentView(R.layout.main); 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
super.onCreateOptionsMenu(menu); 
/** Add one menu item for each View in our project */ 
menu.add(0, 0, "AutoComplete"); 
menu.add(0, 1, "Button"); 
menu.add(0, 2, "CheckBox"); 
menu.add(0, 3, "EditText"); 
menu.add(0, 4, "RadioGroup"); 
menu.add(0, 5, "Spinner"); 
return true; 

/** Override onOptionsItemSelected to execute code for each 
menu item */ 
@Override 
public boolean onOptionsItemSelected(Menu.Item item){ 

/** Select statement to handle calls 
to specific menu items */ 
switch (item.getId()) { 
case 0: 
return true; 
case 1: 
return true; 
case 2: 
return true; 
case 3: 
return true; 
case 4: 
return true; 
case 5: 
return true; 

return true; 

    完成了AndroidViews.java,你可以重点去创建其它的活动了,在下一节中,你将在项目中为每一个View创建一个活动并增加代码来启动case声明中view的活动。

为AutoComplete创建一个活动

 

更多信息请查看 http://www.javady.com/index.php/category/thread

分享到:
评论

相关推荐

    Android开发从入门到精通_android_

    《Android开发从入门到精通》是一本针对Android Studio的详细开发指南,旨在帮助初学者和有一定基础的开发者深入了解和掌握Android应用开发的核心技术。在学习Android开发的过程中,Android Studio是官方推荐的集成...

    Android开发从入门到精通

    书号:ISBN:9787894300874 Android开发从入门到精通

    Android开发从入门到精通【视频教程+课程源码】.rar

    在Android开发领域,掌握基础知识是至关重要的,而这套"Android开发从入门到精通【视频教程+课程源码】"提供了一条系统学习的路径。它不仅包括了详细的视频讲解,还有配套的源代码,旨在帮助初学者从零开始,逐步...

    Android_开发从入门到精通_IBM.pdf

    ### Android开发从入门到精通 #### 一、Android概述与平台简介 - **定义与起源**:Android是一种基于Linux V2.6内核的操作系统,最初由Andy Rubin等人于2003年创立,旨在为移动设备提供一个开放且完整的操作系统...

    android开发从入门到精通光盘源代码

    "Android开发从入门到精通光盘源代码"是一个很好的学习资源,提供了随书配套的详细代码示例,帮助开发者深入理解Android应用开发的各个环节。这里我们将围绕这个主题,深入探讨Android开发中的关键知识点。 首先,...

    Android应用开发从入门到精通-源码和课件.rar

    Android应用开发从入门到精通-源码和课件.rar

    Android网络开发从入门到精通源码_张余

    本资料"Android网络开发从入门到精通源码"由张余提供,旨在帮助开发者系统地学习并掌握Android平台上的网络编程技术。 一、Android网络基础 在Android中,我们主要通过HttpURLConnection、HttpClient(已废弃)、...

    Android开发从入门到精通.pdf

    《Android开发从入门到精通》是一本专门为Android编程新手量身打造的教程。这本书全面覆盖了Android开发的基础知识,旨在帮助读者快速掌握Android应用开发的核心技能。以下是对书中的主要知识点进行的详细解读: 1....

    [Android开发从入门到精通].扶松柏.扫描版.pdf

    从给定的文件信息来看,这是一本名为《Android开发从入门到精通》的书籍,作者为扶松柏,版本为扫描版。虽然标签部分似乎有些混乱,将本书标记为"C++经典书籍",但根据标题和描述,我们可以确定这实际上是一本关于...

    Android开发应用从入门到精通光盘

    Android开发应用从入门到精通 朱桂英 中国铁道出版社 本书循序渐进地讲解了android技术的基本知识,并通过实例直观地演示了android在各个领域中的具体应用。本书内容新颖、知识全面、讲解详细,全书分为4篇17章,第...

    Android开发从入门到精通].扶松柏.扫描版

    Android开发从入门到精通是扶松柏编著的一本关于Android应用程序开发的书籍。该书面向初学者,旨在通过简洁明了的语言和生动的实例,详细介绍Android应用开发中所需掌握的各种技术。书中可能覆盖的内容包括但不限于...

    Android_开发从入门到精通_IBM.

    Android_开发从入门到精通_IBM

    Android开发从入门到精通源码

    《Android开发从入门到精通源码》是一套全面解析Android应用开发的教程,涵盖了从基础知识到高级技巧的全过程。此教程分为两个部分,第一部分包括第2至6章,第二部分涵盖第7至12章,旨在帮助初学者快速掌握Android...

    Android开发从入门到精通(随书光盘)【源码】第9章

    在本资源中,我们聚焦于"Android开发从入门到精通"这一主题,特别是关于第9章的源码。这表明该压缩包包含了Android应用开发的一个关键章节的学习资料,特别是实战案例,这对于初学者和进阶者都极具价值。以下是根据...

    Android开发应用从入门到精通 高清版本

    本款android从入门到精通pdf是由明日科技编著,是一本android入门书籍。全书由浅入深,循序渐进,以初、中级程序员为对象,从了解Android和搭建开发环境学起,再学习Android开发的基础技术,然后学习Android开发的...

    Android开发从入门到精通-扶松柏版

    《Android开发从入门到精通-扶松柏版》这本书籍是Android开发领域中一本专门针对初学者的教程书籍。它以通俗易懂的方式介绍Android开发的基础知识,帮助读者逐步掌握如何使用Android Studio这个集成开发环境来创建和...

    Android从入门到开发案例+视频.txt

    Android开发从入门到精通第二版项目案例+视频讲解

Global site tag (gtag.js) - Google Analytics