读书人

Android开发06菜单与对话框(下)

发布时间: 2012-08-27 21:21:57 作者: rapoo

Android开发06—菜单与对话框(上)
Android开发06—菜单与对话框(上)

1.菜单
1)选项菜单和子菜单
当Activity在前台工作的时候,按下menu将会弹出相应的选项菜单。这个功能是需要开发人员编成实现的,如果在程序中没有此功能,那么程序运行时按下手机的menu键将不会有反映。
对于有图标的选项菜单,每次最多能显示6个,当多于6个时,将只显示前5个和一个拓展菜单选项。
在Android中通过回调方法来创建菜单并处理菜单按下的事件。
开发选项菜单主要用到Menu,MenuItem及SubMenu
实例:接受用户在菜单中的选项并输出到文本框控件中
main.xml:

Activity:


Acticity:
3.对话框
对话框是Activity运行时显示的小窗口,当显示对话框时,当前Activity失去焦点而由对话框负责所有的人机交互。一般来说,对话框用于提示消息或弹出一个与程序主进程直接相关的小程序。
Android平台下主要有以下几种对话框:
1)提示对话框 AlertDialog
AlertDialog对话框可以包含若干按钮和一些可选的单选按钮或复选框。
2)进度对话框
ProgressDialog可以显示进度轮或进度条,由于ProgressDialog继承自AlertDialog,所以其也可以添加按钮。
3)日期选择对话框DatePickerDialog
4)时间选择对话框TimePickerDialog

对话框是作为Activity的一部分被创建和显示的,在程序中通过开发回调方法onCreateDialog来完成对话框的创建,该方法需要传入代表对话框id参数。如果需要显示对话框,则调用showDialog方法传入对话框id来显示指定的对话框。

当对话框第一次被显示时,Android会调用onCreateDialog方法来创建对话框实例,之后将不再重复创建该实例。同时,每次对话框再被显示之前都会调用onPrepareDialog方法,如果补充些该方法,那么每次显示的对话框将是最初创建的那个。

关闭对话框可以调用Dialog类的dismiss方法来实现,但是要注意这种方法不会让对话框彻底消失,如果要对话框被关闭后彻底消失,要调用removeDialog方法并传入Dialog的id。

下面通过普通对话框的例子来说明如何使用:

main.xml:

Activity:
package qijia.si;import android.app.Activity;import android.app.AlertDialog;import android.app.AlertDialog.Builder;import android.app.Dialog;import android.content.DialogInterface;import android.content.DialogInterface.OnClickListener;import android.os.Bundle;import android.view.ContextMenu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.EditText;public class ContextMenuDemo extends Activity {//普通对话框idfinal int COMMON_DIALOG = 1;    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                //获取Button对象        Button btn = (Button)findViewById(R.id.button1);        //为Button设置监听器        btn.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubshowDialog(COMMON_DIALOG);}});            }    //重写onCreateDialog方法    public Dialog onCreateDialog(int id){    //声明一个dialog对象用于返回    Dialog dialog = null;    switch(id){    case COMMON_DIALOG:    Builder b = new AlertDialog.Builder(this);    //设置对话框图标    b.setIcon(R.drawable.header);    b.setTitle(R.string.btn);    b.setMessage(R.string.dialog_msg);    //添加按钮    b.setPositiveButton(R.string.ok,     new OnClickListener(){public void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubEditText et = (EditText)findViewById(R.id.editText1);et.setText(R.string.dialog_msg);}        });    dialog = b.create();    break;    default:    break;        }    return dialog;    }                }

读书人网 >Android

热点推荐