【Android入门 六】菜单栏和对话框的约会

来源:互联网 发布:熊片数据库正式版 编辑:程序博客网 时间:2024/06/05 17:25

一、菜单栏的简单使用:

  1. 重写Activity的onCreateOptionsMenu()方法,得到menu对象
  2. menu对象调用add()方法,增加菜单选项。(可用for循环简化)
  3. 重写Activity的onOptionsItemSelected(MenuItem item)方法,在这个方法里得到菜单选项的编号,添加UI交互。

二、对话框的简单使用(设计模式):

  1. 得到AlertDialog.Builder对象
  2. 根据对象调用的set方法确定Dialog类型
  3. .Builder对象生成Dialog对象
  4. 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
原创粉丝点击