Android开发学习日志(四)
2013-04-03 19:41
447 查看
接上一篇,我们就来优化一下上一篇中的计算器。我们回过头来看看我们已经实现的App,和一个成熟的App相比我们缺少了什么。最基本就应该是菜单了吧,下面就说一下菜单。
之前我们讲过,在MainActivity中我们重写了两个方法,onCreate和onCreateOptionsMenu,onCreateOptionsMenu就是创建菜单的方法。和控件一样,菜单的创建也有使用xml的描述语言(布局文件)和用java代码创建两种方法,我们看到自动生成的onCreateOptionsMenu方法有这样一句:getMenuInflater().inflate(R.menu.activity_main, menu);这个就是把布局文件中定义的菜单加载到当前Activity的菜单实例中。既然知道了是布局文件来定义菜单的,那么我们就打开/Calculator/res/menu/activity_main.xml这个菜单布局文件来看看。里面应该仅有下面的代码:
当然,我们运行我们的程序的时候按menu键,菜单也应该只有一个setting项,点击之后没有任何反应,因为我们还没有为菜单添加事件监听处理程序。
下面我们修改一下菜单,我们把setting项改为About,用来显示应用的相关信息,再添加一个退出的菜单,并且为菜单添加事件监听。
这里说一句:菜单基本上分为三类,选项菜单(optinosMenu),上下文菜单(ContextMenu),子菜单(subMenu),选项菜单就是我们按了menu键之后出现的菜单,也就是上面我们正在添加的菜单,选项菜单是以Activity为单位的,所以我们添加选项菜单的处理程序非常简单,只需要重写Activity中的onOptionsItemSelected方法就可以了。顾名思义,该方法就是当菜单被点击时调用的方法。其参数是被点击菜单项的实例。
显示About信息这里使用了AlertDialog,顾名思义就是弹窗,使用安卓系统的朋友应该是经常见到的。
当我们点击文本框时,系统的输入法还是会弹出来,用户体验不是很好,我们把输入法屏蔽。其实就是EditText的属性,加上这句就行了:inputText.setInputType(InputType.TYPE_NULL);
结束。
之前我们讲过,在MainActivity中我们重写了两个方法,onCreate和onCreateOptionsMenu,onCreateOptionsMenu就是创建菜单的方法。和控件一样,菜单的创建也有使用xml的描述语言(布局文件)和用java代码创建两种方法,我们看到自动生成的onCreateOptionsMenu方法有这样一句:getMenuInflater().inflate(R.menu.activity_main, menu);这个就是把布局文件中定义的菜单加载到当前Activity的菜单实例中。既然知道了是布局文件来定义菜单的,那么我们就打开/Calculator/res/menu/activity_main.xml这个菜单布局文件来看看。里面应该仅有下面的代码:
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/menu_settings" android:title="@string/menu_settings" android:orderInCategory="100" android:showAsAction="never" /> </menu>
当然,我们运行我们的程序的时候按menu键,菜单也应该只有一个setting项,点击之后没有任何反应,因为我们还没有为菜单添加事件监听处理程序。
下面我们修改一下菜单,我们把setting项改为About,用来显示应用的相关信息,再添加一个退出的菜单,并且为菜单添加事件监听。
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/menu_about" android:title="@string/menu_about" android:orderInCategory="100" android:showAsAction="never" /> <item android:id="@+id/menu_exit" android:orderInCategory="101" android:title="@string/menu_exit" android:showAsAction="never"></item> </menu>
这里说一句:菜单基本上分为三类,选项菜单(optinosMenu),上下文菜单(ContextMenu),子菜单(subMenu),选项菜单就是我们按了menu键之后出现的菜单,也就是上面我们正在添加的菜单,选项菜单是以Activity为单位的,所以我们添加选项菜单的处理程序非常简单,只需要重写Activity中的onOptionsItemSelected方法就可以了。顾名思义,该方法就是当菜单被点击时调用的方法。其参数是被点击菜单项的实例。
@Override public boolean onOptionsItemSelected(MenuItem item) { // 貌似没什么用,现在可加可不加, 不过不能保证以后google不会扩展基类中的代码 super.onOptionsItemSelected(item); switch (item.getItemId()) { case R.id.menu_about: this.createAlertDialog(); break; case R.id.menu_exit: finish(); break; } return false; } /** * 创建About对话框 */ private void createAlertDialog() { Dialog aboutDialog = new AlertDialog.Builder(this).setTitle("About") .setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }).setMessage("Calculator V1.0\r\nAuthor: Null Pointer\r\nInstruction: ......").create(); aboutDialog.show(); }
显示About信息这里使用了AlertDialog,顾名思义就是弹窗,使用安卓系统的朋友应该是经常见到的。
当我们点击文本框时,系统的输入法还是会弹出来,用户体验不是很好,我们把输入法屏蔽。其实就是EditText的属性,加上这句就行了:inputText.setInputType(InputType.TYPE_NULL);
结束。
相关文章推荐
- 【Android-Unity3D学习日志】Android-Unity3D开发环境搭建
- 菜鸟学习Android开发日志
- Android 学习日志 1 :开发环境配置
- Android开发学习日志 - 提示用户是否关闭程序
- 菜鸟学习日志1.Android开发环境的搭建
- Android开发学习之路--性能优化之布局优化
- Android开发学习第一天
- Android:动画开发学习
- Android开发学习笔记之浅谈WebView
- Android初级开发第八讲--ListView学习以及特性介绍
- Android C2DM学习——客户端代码开发
- android开发学习之路(1)---- activity及intent基本详解(1)
- 自学宝典:10个学习Android开发的网站推荐
- android游戏开发学习笔记二(学习书籍 Android游戏编程之从零开始)
- Android软件开发学习路线规划
- 10个很棒的学习Android 开发的网站(转)
- android入门开发之Intent学习
- 安卓开发学习之001 LinearLayout之android:gravity详解
- android开发-简单基础学习
- Android开发从零开始之十五:Service学习(一)