Android学习:用户界面UI之AlertDialog

来源:互联网 发布:网络使人更亲近的例子 编辑:程序博客网 时间:2024/06/06 08:25

        对话框是程序运行中的弹出窗口。Android系统提供了四种对话框:告警对话框(AlertDialog)、进度对话框(ProgressDialog)、日期选择对话框(DatePickerDialog)、时间选择对话框(TimerPickerDialog)。

 

        AlertDialog

        AlertDialog是一个提示窗口,要求用户做出选择。对话框中一般会有几个选择按钮、标题信息和提示信息。告警对话框可以扩展为普通告警对话框、列表对话框、单选对话框、多选对话框。

        在程序中创建对话框需要如下步骤:

        1、获得AlertDialog的静态内部类Builder对象。由该类来创建对话框。

        2、通过Builder对象设置对话框的标题、按钮以及按钮将要响应的事件。

        3、调用Builder的create()方法创建对话框(AlertDialog)。

        4、调用AlertDialog的show()方法显示对话框。

package com.jwt.chp04;import android.os.Bundle;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class AlertDialogActivity extends Activity {private Button btnAlert;private Button btnList;private Button btnSingle;private Button btnMulti;private TextView lblTitle;final String[] items = { "奥尔良鸡腿堡", "麻辣鸡腿堡", "深海鳕鱼堡", "咖啡" };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_alertdialog);btnAlert = (Button) findViewById(R.id.btnADDel);btnList = (Button) findViewById(R.id.btnADSel);btnSingle = (Button) findViewById(R.id.btnADSingleSel);btnMulti = (Button) findViewById(R.id.btnADMultiSel);lblTitle = (TextView) findViewById(R.id.lblADTitle);btnAlert.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {ShowAlertDialog();}});btnList.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {ShowListDialog();}});btnSingle.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {ShowSingleSelectDialog();}});btnMulti.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {ShowMultiSelectDialog();}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.alert_dialog, menu);return true;}private void ShowAlertDialog() {AlertDialog.Builder b = new AlertDialog.Builder(this);b.setTitle("告警对话框").setMessage("您确定要删除这个吗?").setPositiveButton("Sure",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog,int which) {// TODO Auto-generated method stublblTitle.setText("Delete Successed!");}}).setNegativeButton("Cancel",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog,int which) {// TODO Auto-generated method stublblTitle.setText("Delete Cancel");}});AlertDialog dialog = b.create();dialog.show();}private void ShowListDialog() {AlertDialog.Builder b = new AlertDialog.Builder(this);b.setTitle("列表对话框").setItems(items,new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stublblTitle.setText("您的选择是:" + items[which]);}});AlertDialog dialog = b.create();dialog.show();}private void ShowSingleSelectDialog() {AlertDialog.Builder b = new AlertDialog.Builder(this);b.setTitle("单选对话框");b.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stublblTitle.setText("您的选择是:" + items[which]);}});b.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub}});AlertDialog dialog = b.create();dialog.show();}private void ShowMultiSelectDialog() {final boolean[] defSel = new boolean[] { false, true, false, true };AlertDialog.Builder b = new AlertDialog.Builder(this);b.setTitle("多选对话框");b.setMultiChoiceItems(items, defSel,new DialogInterface.OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which,boolean isChecked) {// TODO Auto-generated method stubdefSel[which] = isChecked;String result = "您选择了:";for (int i = 0; i < defSel.length; i++) {if (defSel[i])result += items[i] + "、";}lblTitle.setText(result);}});b.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub}});AlertDialog dialog = b.create();dialog.show();}}


 

原创粉丝点击