【Android入门 六】菜单栏和对话框的约会
来源:互联网 发布:熊片数据库正式版 编辑:程序博客网 时间:2024/06/05 17:25
一、菜单栏的简单使用:
- 重写Activity的onCreateOptionsMenu()方法,得到menu对象
- menu对象调用add()方法,增加菜单选项。(可用for循环简化)
- 重写Activity的onOptionsItemSelected(MenuItem item)方法,在这个方法里得到菜单选项的编号,添加UI交互。
二、对话框的简单使用(设计模式):
- 得到AlertDialog.Builder对象
- 根据对象调用的set方法确定Dialog类型
- .Builder对象生成Dialog对象
- Dialog对象调用show()方法
备注:
注意区分:
setSingleChoiceItems()方法产生的dialog与setItems()产生的对话框的不同。
用(内部)类替代功能的思想,好处:分离,final、成员变量在匿名内部类的使用等
代码实例:
package com.android.listview;import com.android.port.Action;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.DialogInterface.OnClickListener;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.widget.Toast;public class MenuActivity extends Activity {String[] optionMenu = { "新建", "保存", "更新" };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// TODO 自动生成的方法存根for (int i = 0; i < optionMenu.length; i++) {menu.add(0, i, i, optionMenu[i]);}return super.onCreateOptionsMenu(menu);}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {int itemId = item.getItemId();if (itemId == 0) {// 提示new NewAction().execute();} else if (itemId == 1) {// 单选new SaveAction().execute();} else if (itemId == 2) {//更新new UpdateAction().execute();}return super.onOptionsItemSelected(item);}class NewAction implements Action {@Overridepublic void execute() {// TODO 自动生成的方法存根// 提示AlertDialog.Builder builder = new AlertDialog.Builder(MenuActivity.this);builder.setTitle("确定");builder.setMessage("确定要新建吗?");builder.setNegativeButton("确定", new OnClickListener() {public void onClick(DialogInterface dialog, int which) {Toast.makeText(MenuActivity.this, "已经新建", 500).show();}});builder.setPositiveButton("取消", new OnClickListener() {public void onClick(DialogInterface dialog, int which) {Toast.makeText(MenuActivity.this, "取消新建", 500).show();}});AlertDialog dialog = builder.create();dialog.show();}}class SaveAction implements Action {int position = 0;String[] num = new String[] { "One", "Two", "Three" };@Overridepublic void execute() {// TODO 自动生成的方法存根//保存AlertDialog.Builder builder = new AlertDialog.Builder(MenuActivity.this);builder.setTitle("单选");builder.setSingleChoiceItems(num, 0, new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MenuActivity.this, num[which], 500).show();position = which;}});builder.setNegativeButton("确定", new OnClickListener() {public void onClick(DialogInterface dialog, int which) {Toast.makeText(MenuActivity.this, num[position] + "已经保存",500).show();}});builder.setPositiveButton("取消", new OnClickListener() {public void onClick(DialogInterface dialog, int which) {Toast.makeText(MenuActivity.this, num[position] + "取消保存",500).show();}});AlertDialog dialog = builder.create();dialog.show();}}class UpdateAction implements Action {@Overridepublic void execute() {// TODO 自动生成的方法存根AlertDialog.Builder builder = new AlertDialog.Builder(MenuActivity.this);builder.setTitle("更新");builder.setItems(new String[] { "One", "Two", "Three" },new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO 自动生成的方法存根}});AlertDialog dialog = builder.create();dialog.show();}}}
0 0
- 【Android入门 六】菜单栏和对话框的约会
- MFC基于对话框的菜单栏,工具栏和状态栏的创建
- MFC的对话框工具栏、状态栏、和菜单栏的编辑
- C++中对话框和菜单栏同时显示的设置
- VS2010/MFC编程入门之六(对话框:创建对话框模板和修改对话框属性)
- VS2010/MFC编程入门之六(对话框:创建对话框模板和修改对话框属性)
- VS2010/MFC编程入门之六(对话框:创建对话框模板和修改对话框属性)
- android 弹出式对话框实现自定义菜单栏
- vc 对话框修改菜单栏的背景颜色
- MFC菜单栏显示带图片的对话框
- vc 对话框修改菜单栏的背景颜色
- MFC基于对话框加载菜单栏的方法
- MFC编程--添加基于对话框的菜单栏
- 修改android studio菜单栏和代码的字体和大小
- VC6.0中基于对话框程序中菜单栏和工具条按钮的状态同步更新问题
- Android入门--弹出三个按钮的对话框
- 和jQuery的初次约会
- android菜单栏menu的使用
- 自学AWK
- Linux下搭建Nginx代理访问MongoDB GridFS图片资源
- android开发中延迟执行任务方法
- SpringMvc(4.0)+Hibernate(4.0)
- 从程序员到CTO的Java技术路线图
- 【Android入门 六】菜单栏和对话框的约会
- uC/OS-II内核架构解析(1)---嵌入式RTOS
- 动态规划——hdu1003
- 接口url 获取data
- Linux 视频设备驱动V4L2最常用的控制命令使用说明
- 打开谷歌浏览器
- sql语句-按照汉字拼音首字母排序
- CSS3 2D转换
- Handler与Looper源码分析