android中的dialog

package com.tarena.dialog;

import java.util.Calendar;


import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.app.TimePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Button;

public class Main extends Activity {
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  // 弹出式对话框的 Demo。先调用 Builder(),在 Create(), 需要显示对话框的是后再调用 show()
  AlertDialog dialog = new AlertDialog.Builder(this).setTitle("弹出对话框").create();
  dialog.show();
  
  // 以下是各种对话框的 Demo
  MyButtonClickListener listener = new MyButtonClickListener();
  Button btn1 = (Button) this.findViewById(R.id.btn1);
  btn1.setText("简单的对话框的 Demo");
  btn1.setOnClickListener(listener);

  Button btn2 = (Button) this.findViewById(R.id.btn2);
  btn2.setText("包括常用设置的对话框(数据来自 xml)");
  btn2.setOnClickListener(listener);

  Button btn3 = (Button) this.findViewById(R.id.btn3);
  btn3.setText("弹出的对话框的内容是一个 View");
  btn3.setOnClickListener(listener);

  Button btn4 = (Button) this.findViewById(R.id.btn4);
  btn4.setText("日期选择对话框");
  btn4.setOnClickListener(listener);

  Button btn5 = (Button) this.findViewById(R.id.btn5);
  btn5.setText("时间选择对话框");
  btn5.setOnClickListener(listener);

  Button btn6 = (Button) this.findViewById(R.id.btn6);
  btn6.setText("进度条对话框");
  btn6.setOnClickListener(listener);
 }

 class MyButtonClickListener implements View.OnClickListener {
  @Override
  public void onClick(View v) {
   
   // 具体的对话框的实现可以通过重写 onCreateDialog 完成
   
   switch (v.getId()) {
   case R.id.btn1:
    Main.this.showDialog(0);
    break;
   case R.id.btn2:
    Main.this.showDialog(1);
    break;
   case R.id.btn3:
    Main.this.showDialog(2);
    break;
   case R.id.btn4:
    Main.this.showDialog(3);
    break;
   case R.id.btn5:
    Main.this.showDialog(4);
    break;
   case R.id.btn6:
    Main.this.showDialog(5);
    break;
   }
  }
 }

 @Override
 public Dialog onCreateDialog(int id) {
  switch (id) {

  case 0:
   // 一个简单的弹出对话框
   return new AlertDialog.Builder(this).setTitle("这是一个简单的弹出对话框的 Demo")
     .create();

  case 1:
   // 一个相对复杂的弹出对话框
   return new AlertDialog.Builder(this)
     .setTitle("标题") // 设置标题
     // .setCustomTitle(View) // 以一个 View 作为标题
     .setIcon(R.drawable.icon01) // 设置标题图片
     // .setMessage("信息") // 需要显示的弹出内容
     .setPositiveButton("确定", new OnClickListener() { // 设置弹框的确认按钮所显示的文本,以及单击按钮后的响应行为
      @Override
      public void onClick(DialogInterface a0, int a1) {
       TextView txtMsg = (TextView) Main.this.findViewById(R.id.txtMsg);
       txtMsg.append("单击了对话框上的“确认”按钮\n");
      }
     })
     .setItems(R.array.ary, new DialogInterface.OnClickListener() { // 弹框所显示的内容来自一个数组。数组中的数据会一行一行地依次排列
      public void onClick(DialogInterface dialog, int which) {
      }
     })
     // 其他常用方法如下
     // .setMultiChoiceItems(arg0, arg1, arg2)
     // .setSingleChoiceItems(arg0, arg1, arg2)
     // .setNeutralButton(arg0, arg1)
     // .setNegativeButton(arg0, arg1)
     .create();

  case 2:
   // 弹出对话框为指定的 View 的 Demo
   LayoutInflater inflater = LayoutInflater.from(this); 
         final View textEntryView = inflater.inflate( 
                 R.layout.view, null);
         final AlertDialog.Builder builder = new AlertDialog.Builder(this); 
         builder.setCancelable(false); 
         builder.setIcon(R.drawable.icon); 
         builder.setTitle("Title"); 
         builder.setView(textEntryView); 
         builder.setPositiveButton("确认", 
                 new DialogInterface.OnClickListener() { 
                     public void onClick(DialogInterface dialog, int whichButton) { 
                         setTitle("确认"); 
                     } 
                 }); 
         builder.setNegativeButton("取消", 
                 new DialogInterface.OnClickListener() { 
                     public void onClick(DialogInterface dialog, int whichButton) { 
                         setTitle("取消"); 
                     } 
                 }); 
        
   
   
   return builder.show(); 
//     new AlertDialog.Builder(this).setTitle("此对话框的内容是一个 View")
//     .setView(this.findViewById(R.layout.view)).create();

  case 3:
   // 弹出日期选择对话框
   Calendar c = Calendar.getInstance();
   return new DatePickerDialog(this, new OnDateSetListener() {
    @Override
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
     TextView txtMsg = (TextView) Main.this.findViewById(R.id.txtMsg);
     txtMsg.append("新设置的日期为:" + String.valueOf(year) + "-"
       + String.valueOf(monthOfYear) + "-"
       + String.valueOf(dayOfMonth) + "\n");
    }
   }, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DATE));

  case 4:
   // 弹出时间选择对话框
   Calendar c2 = Calendar.getInstance();
   return new TimePickerDialog(this, new OnTimeSetListener() {
    @Override
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
     TextView txtMsg = (TextView) Main.this.findViewById(R.id.txtMsg);
     txtMsg.append("新设置的时间为:"
       + String.valueOf(hourOfDay) + ":"
       + String.valueOf(minute) + "\n");
    }

   }, c2.get(Calendar.HOUR), c2.get(Calendar.MINUTE), true);

  case 5:
   // 弹出进度条对话框
   ProgressDialog progress = new ProgressDialog(this);
   progress.setMessage("loading...");
   return progress;

  default:
   return null;
  }
 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值