`
wc0903
  • 浏览: 81919 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

第八章 列表、菜单以及其它视图——中

阅读更多

这段代码有个问题:onOptionsItemSelected()是一个当任何菜单项被选择时都会调用的普通方法。你需要给onOptionsItemSelected()一种区别菜单项并执行相应代码的方法。因此,使用switch/case声明,来帮助方法选择不同的菜单项。当你创建菜单项时,你指定了从05的一些列数字作为菜单项的值。你可以在case声明中调用getId()来区别哪个菜单项背选中了。

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;

在这个声明中,每个id的动作都返回true。这除了打开你需要添加代码的区域外,啥也没干。你的AndroidViews.java文件现在已经适合创建爱你新菜单系统能启动的Activity了。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后,你可以重点创建你的其它Activity。下面的章节中,你会在项目中为每个视图创建一个Activity,并在case声明中添加代码来启动这些视图的Activity

创建自动完成的Activity

本节,你会创建一个Activity来展示AutoCompleteTextViewAutoCompleteTextView会成为你开发的强大工具。这个视图对充分利用Android有限的主屏空间非常有用。

AutoCompleteTextView,顾名思义,是一个修改过的TextView,当输入一个单词或词组时它会提示一些可能的值。这种视图在移动应用中非常有用,特别当你不想为ListView预留空间,或者将加快向应用中输入文本的进程。

要创建AutoCompleteTextView,你需要添加一个新的.xml布局文件,添加一个.java文代码件,和一个处理通话的Intent 过滤器。

 

创建一个autocomplete.xml文件

AndroidView项目中创建一个名为autocomplete.xml.xml文件。注意文件名必须全部小写。文件会出现在Package Explorer中的layout文件夹。双击文件进行编辑。

这个文件用来控制AutoCompleteTextView Activity的图层,所以你的图层中需要有一个AutoCompleteTextView。添加AutoCompleteTextViewXMl看起来像:

<AutoCompleteTextView android:id="@+id/testAutoComplete"

android:layout_width="fill_parent"

 android:layout_height="wrap_content"/>

你已经在.xml文件中创建了一些视图,所以你应该熟悉这种格式,AutoCompleteTextView也没啥不同。将id设置为testAutoComplete,将宽与高分别设置为fill_parentwrap_content

你也应该为两个按钮添加图层。这些按钮用来控制你改变的属性。将属性命名为autoCompleteTextViewtextColorButton,如下:

<Button android:id="@+id/autoCompleteButton"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Change Layout"/>

 

<Button android:id="@+id/textColorButton"

android:layout_width="fill_parent

android:layout_height="wrap_content"

android:text="Change Text Color"/>

当添加三个视图layout后,最终的autocomplete.xml文件应该看起来像这样:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

<AutoCompleteTextView android:id="@+id/testAutoComplete"

android:layout_width="fill_parent"

android:layout_height="wrap_content"/>

<Button android:id="@+id/autoCompleteButton"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Change Layout"/>

<Button android:id="@+id/textColorButton"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Change Text Color"/>

</LinearLayout>

 

创建一个autocomplete.java文件

参照前面的“创建一个新的.java文件”章节的提示,来创建你的autocomplete.java文件。

你要做的第一件事,就是味你的视图导入包。在这个Activity中,你要用到两个视图,AutoCompleteTextViewButton。你需要用到ColorsigeArrayAdapter。因此在你的Activity中导入如下的包:

package android_programmers_guide.AndroidViews;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.AutoCompleteTextView;

import android.widget.Button;

import android.graphics.Color;

autocomplete.javaAutoComplete类添加初始化结构。

public class AutoComplete extends Activity {

@Override

public void onCreate(Bundle icicle) {

super.onCreate(icicle);

}

}

这个类给为你创建Activity的其余部分打下了基础。这个Activity中的所有功能都会给予这个类构建。你要做的第一件事就是从autocomplete.xml中加载图层。

setContentView(R.layout.autocomplete);

该例中,你会创建AutoCompleteTextView,它包含一个月份列表。当用户在框中输入时,它会匹配你要输入的月份。由于AutoCompleteTextView包含了一个月份列表,你需要创建一个能与AutoCompleteTextView相关的列表。创建一个字符串数组,并为它分配月份值:

static final String[] Months = new String[]{

"January","February","March","April","May","June","July","August",

"September","October","Nove mber","December"

};

下个任务就是将字符串数组赋给AutoCompleteTextView。你已经创建了不止一个视图,所以创建AutoCompleteTextView的代码应该非常熟悉。你之前所没见到过的是为视图分配字符串数组的代码:

ArrayAdapter<String> monthArray = new ArrayAdapter<String>(this,

android.R.layout.simple_list_item_1, Months);

final AutoCompleteTextView textView = (AutoCompleteTextView)

findViewById(R.id.testAutoComplete);

textView.setAdapter(monthArray);

第一行中,你调用了你创建的字符串数组,并将它赋给名为monthArrayArrayAdapter

下面的一段代码实例化了两个按钮。这根前面章节中用到的代码相同。唯一的区别是你调用了两个尚未被创建的方法:changeOptionchangeOption2

final Button changeButton = (Button) findViewById(R.id.autoCompleteButton);

changeButton.setOnClickListener(new Button.OnClickListener() {

public void onClick(View v){

changeOption(textView);

}

});

final Button changeButton2 = (Button)

findViewById(R.id.textColorButton);

changeButton2.setOnClickListener(new Button.OnClickListener() {

public void onClick(View v){

changeOption2(textView);

}

});

被这些按钮调用的方法用来改变AutoCompleteTextView上的布局属性。我所选择改变的那两个属性是布局的高和文本的颜色。你会安装这些按钮的某个,将AutoCompleteTextView的布局高度反复改为30100。另一个按钮用来将视图中文本的颜色改变为红色。

ChangeOption()功能会改变AutoCompleteTextView的布局高度。这个功能的代码非常简单:

public void changeOption(AutoCompleteTextView text){

if (text.getHeight()==100){

text.setHeight(30);

}

else{

text.setHeight(100);

}

}

这个功能中你所做的就是检测AutoCompleteTextView的当前高度。如果高度为100,则将其设置为30,否则设置为100

ChangeOption2()的功能同样简单:

public void changeOption2(AutoCompleteTextView text){

text.setTextColor(Color.RED);

}

这个功能仅仅将AutoCompleteTextView的文本颜色设置为Color.REDColor.RED的值从android.graphics.Color包中导入。你可以浏览这个包,改颜色改变为任何值;我选择RED所以它会醒目一些。

你完整的autocomplete.java文件应该看起来像这样:

package android_programmers_guide.AndroidViews;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.AutoCompleteTextView;

import android.widget.Button;

import android.graphics.Color;

public class AutoComplete extends Activity {

@Override

public void onCreate(Bundle icicle) {

super.onCreate(icicle);

setContentView(R.layout.autocomplete);

ArrayAdapter<String> monthArray = new ArrayAdapter<String>(this,

android.R.layout.simple_list_item_1, Months);

final AutoCompleteTextView textView = (AutoCompleteTextView)

findViewById(R.id.testAutoComplete);

textView.setAdapter(monthArray);

final Button changeButton = (Button)

findViewById(R.id.autoCompleteButton);

changeButton.setOnClickListener(new Button.OnClickListener() {

public void onClick(View v){

changeOption(textView);

}

});

final Button changeButton2 = (Button)

findViewById(R.id.textColorButton);

changeButton2.setOnClickListener(new Button.OnClickListener() {

public void onClick(View v){

changeOption2(textView);

}

});

}

static final String[] Months = new String[]{

"January","February","March","April","May","June","July","August",

"September","October","November","December"

};

public void changeOption(AutoCompleteTextView text){

if (text.getHeight()==100){

text.setHeight(30);

}

else{

text.setHeight(100);

}

}

public void changeOption2(AutoCompleteTextView text){

text.setTextColor(Color.RED);

}

}

 

创建一个Intent过滤器

在你运行这个应用之前你要做的最后一件事就是在AndroidManifes.xml中建立Intent过滤器。然后你就可以从前面图8-1所示的Menu中调用Intent了。Intent过滤器的代码如下所示:

<activity android:name=".AutoComplete" android:label="AutoComplete">

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

0
0
分享到:
评论

相关推荐

    Windows编程新手乐园 CHM

    第八章 本篇复习——控制台应用程序和长文件名 第二篇:字体和窗口控制 第九章 第八天课程——Windows 动画:Snake 游戏 第十章 第九天课程——字体基础知识 第十一章 第十天课程——窗口控制 第十二章 第十...

    Word 2010办公应用案例视频教程下载第8章 视图和窗口操作——对比查看员工规章制度文档.zip

    总的来说,本视频教程的第8章详细介绍了Word 2010中的视图和窗口操作,旨在提升用户在处理复杂文档,尤其是对比员工规章制度文档时的工作效率。通过学习和实践,用户不仅可以熟练掌握各种视图的切换与应用,还能精通...

    《Visual C++实用教程》ppt课件(刘惊雷)

    第8章:利用CDC实现绘图程序.ppt 第9章:Windows应用程序引擎——消息映射.ppt 第10章:用户交互对象——菜单、工具栏和状态栏.ppt 第11章:对话框及常用控件.ppt 第12章:基于文档/视图结构的程序.ppt 第13章:...

    Android编程入门很简单.(清华出版.王勇).part2

    第8章Android应用程序组成 8.1深入理解Activity 8.1.1使用Intent连接Activity 8.1.2 Activity的生命周期 …… 第9章Android中的数据存储 第10章绚丽的多媒体技术 第11章Android网上冲浪 第12章Android地图服务 第4篇...

    Android编程入门很简单.(清华出版.王勇).part1

    第8章Android应用程序组成 8.1深入理解Activity 8.1.1使用Intent连接Activity 8.1.2 Activity的生命周期 …… 第9章Android中的数据存储 第10章绚丽的多媒体技术 第11章Android网上冲浪 第12章Android地图服务 第4篇...

    AndroidStudio————实战演练——仿美团外卖菜单

    在本项目中,"AndroidStudio————实战演练——仿美团外卖菜单"是一个专注于使用Android Studio开发的应用程序实战案例,目标是创建一个类似于美团外卖的菜单功能。这个项目涵盖了多个Android开发的关键知识点,...

    Photoshop CS4中文版完全自学视频教程下载第17章 PhotoshopCS4新增功能——3D图像处理.zip

    Photoshop CS4中文版完全自学视频教程专注于讲解这一版本中的新增功能,特别是3D图像处理技术,这在之前版本的Photoshop中是一个显著的提升。3D图像处理为设计师和艺术家提供了更广阔的设计空间,使其能够创建出更具...

    GBaseDataStudio管理工具手册

    - **第八章:FAQ** —— 提供了常见问题解答,帮助解决用户在使用过程中遇到的技术难题。 #### 三、版权与免责声明 文档开头部分详细阐述了GBaseDataStudio管理工具手册的版权信息和法律声明。这些声明强调了文档...

    Visual foxpro 课件--史济民

    8. **第八章:菜单和工具栏** —— 教授如何构建自定义菜单和工具栏,提升应用程序的用户体验。 9. **第九章:类和对象** —— 探索面向对象编程,理解类和对象的概念,以及如何在VFP中实现封装、继承和多态。 10....

    UG NX 7.0中文版完全自学视频教程下载第1章 感受UGNX7精彩世界——UGNX7入门.zip

    本教程的第一章“感受UGNX7精彩世界——UGNX7入门”是整个学习旅程的起点,主要涵盖了以下几个关键知识点: 1. **UG NX 7.0简介**:介绍UG NX 7.0的基本功能和在工业设计中的重要性。这一版本引入了许多新特性,如...

    UG NX 7.0中文版完全自学视频教程下载第3章 绘图前的设置——UG NX 7功能应用.zip

    7. **视图管理**:在UG NX 7.0中,理解和掌握视图的创建、移动、旋转以及关联方式,有助于清晰地展示设计意图,便于沟通和审查。 8. **层管理**:通过层管理,可以组织模型的不同部分,使其在设计和显示时更加有序...

    visual c++6.0技术内幕 带有NLC的文件查看器

     第8章 使用ActiveX控件  第9章 Internet Explorer 4通用控件  第10章 win32内存管理  第11章 位图  第12章 windows消息处理和多线程编程 第三部分 文档视图结构  第13章 菜单、键盘、加速键、多信息  第14章...

    (Sams) Pure JFC swing

    - **第8章:按钮和复选框**(Buttons and CheckBoxes)——探讨不同类型的交互按钮组件及其使用场景。 - **第9章:列表和组合框**(Lists and ComboBoxes)——讨论列表和下拉列表组件的使用技巧。 - **第10章:...

    微信小程序点餐系统微信小程序开发实战

    微信小程序点餐系统是当前移动互联网时代餐饮业中常见的技术应用,它利用微信小程序平台,为用户提供便捷的在线点餐服务。本项目实战教程将深入探讨如何开发这样一个系统,涵盖从设计、编码到上线的全过程。 一、...

    E.xcel_2010中文版办公应用案例教程第3章 工作表的修饰——制作公司值班表.zip

    在本教程中,我们将深入探讨如何使用Microsoft Excel 2010中文版来制作一份专业且实用的公司值班表。Excel作为一款强大的电子表格软件,不仅适用于数据处理和分析,还可以帮助我们创建各种类型的文档,如值班表。...

    word页眉页脚.pdf

    可以通过在工具——&gt; 选项 —— &gt; 视图——&gt; 格式标记,选中全部,然后删除分页符。 十三、Word 中下标的大小可以改的吗 可以通过格式 —字体。 十四、Word 里怎么自动生成目录啊 可以通过用 ―格式 &gt;&gt; 样式和...

    安卓Android源码——仿google play侧滑菜单.rar

    在侧滑菜单的实现中,它被用来控制菜单视图的滑动逻辑,包括滑动开始、滑动过程以及滑动结束的回调。 5. **自定义ViewGroup**: 实现侧滑菜单通常需要自定义一个`ViewGroup`,例如继承`FrameLayout`或`...

    word使用教程).pdf

    可以通过步骤如下:切换到普通视图,菜单中“视图 ” ——“脚注 ” ;在尾注的下拉菜单中选择“尾注分隔符 ”,这时那条短横线出现了,选中它,删除;再在下拉菜单中选择“尾注延续分隔符”,这是那条长横线出现了...

    UG NX 7.0中文版完全自学视频教程下载第5章 创造立体效果——三维建模.zip

    8. **工作流程和用户界面**:熟悉UG NX的工作环境,了解菜单、工具栏、快捷键的使用,以提高建模效率。 通过观看本视频教程,学习者不仅能掌握UG NX 7.0的基本操作,还能了解工业设计中的典型工作流程,提升创新...

Global site tag (gtag.js) - Google Analytics