Android Dialog的多种对话框整理案例

来源:互联网 发布:mac电脑文稿 编辑:程序博客网 时间:2024/06/02 14:43

sms相关的字段如下:

_id               一个自增字段,从1开始 ,每条短信_id都不一样,根据这个唯一性可以修改短信
thread_id    序号,同一发信人的id相同 
address      发件人手机号码 
person        联系人列表里的序号,陌生人为null 
date            发件日期 
protocol      协议,分为: 0 SMS_RPOTO, 1 MMS_PROTO  
read           是否阅读 0未读, 1已读  
status         状态 -1接收,0 complete, 64 pending, 128 failed 
type 
    ALL    = 0; 
    INBOX  = 1; 
    SENT   = 2; 
    DRAFT  = 3; 
    OUTBOX = 4; 
    FAILED = 5; 
    QUEUED = 6;
 
body                     短信内容 
service_center     短信服务中心号码编号 
subject                  短信的主题 
reply_path_present     TP-Reply-Path






package com.android.dialog;


import java.util.ArrayList;
import java.util.Calendar;
import java.util.Iterator;

import android.annotation.SuppressLint;
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.content.DialogInterface;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.TimePicker;

/ **
 
* 安卓各种对话框综合整理
 * @Author Michael
 * @Date Jan 8th, 2013
 **/
@SuppressLint("HandlerLeak")
public class MainActivity extends Activity {

    //定义按钮
    privateButton btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9;
    //定义操作对话框类型
    privatestatic final int SURE_OR_QUIT = 1;
    privatestatic final int MULTI_BTN = 2;
    privatestatic final int LIST_DIALOG = 3;
    privatestatic final int DIALOG_PROGRESS = 4;
    privatestatic final int DIALOG_SINGLE_CHOICE = 5;
    privatestatic final int DIALOG_MULTIPLE_CHOICE = 6;
    privatestatic final int DIALOG_USER_DEFINED = 7;
    privatestatic final int DIALOG_DATE_PICKER = 8;
    privatestatic final int DIALOG_TIMER_PICKER = 9;
    //定义处理进度条相关对象
    privatestatic final int MAX_PROGRESS = 100;
    privateProgressDialog mProgressDialog;
    private intmProgress;
    privateHandler mProgressHandler;
    //定义选择变量
    private intselectedId;
    privateArrayList<Integer> choiceID;
    //定义日期和时间
    private intmyYear, myMonth, myDay;
    private intmyHour, myMinute;

   @Override
    protectedvoid onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
       //确定或取消按钮
       btn1 =(Button) findViewById(R.id.btn1);
      btn1.setOnClickListener(new View.OnClickListener() {
         @Override
          public voidonClick(View v) {
             // TODOAuto-generated method stub
            showDialog(SURE_OR_QUIT);
          }
       });
       //多个按钮信息框
       btn2 =(Button) findViewById(R.id.btn2);
      btn2.setOnClickListener(new View.OnClickListener() {
         @Override
          public voidonClick(View v) {
             // TODOAuto-generated method stub
            showDialog(MULTI_BTN);
          }
       });
       //列表选择框
       btn3 =(Button) findViewById(R.id.btn3);
      btn3.setOnClickListener(new View.OnClickListener() {
         @Override
          public voidonClick(View v) {
             // TODOAuto-generated method stub
            showDialog(LIST_DIALOG);
          }
       });
       //进度条框
       btn4 =(Button) findViewById(R.id.btn4);
      btn4.setOnClickListener(new View.OnClickListener() {
         @Override
          public voidonClick(View v) {
             // TODOAuto-generated method stub
            showDialog(DIALOG_PROGRESS);
             mProgress =0;
            mProgressDialog.setProgress(0);
            mProgressHandler.sendEmptyMessage(0);
          }
       });
       //单项选择列表框
       btn5 =(Button) findViewById(R.id.btn5);
      btn5.setOnClickListener(new View.OnClickListener() {
         @Override
          public voidonClick(View v) {
             // TODOAuto-generated method stub
            showDialog(DIALOG_SINGLE_CHOICE);
          }
       });
       //多项选择列表框
       btn6 =(Button) findViewById(R.id.btn6);
      btn6.setOnClickListener(new View.OnClickListener() {
         @Override
          public voidonClick(View v) {
             // TODOAuto-generated method stub
            showDialog(DIALOG_MULTIPLE_CHOICE);
          }
       });
       //用户自定义对话框
       btn7 =(Button) findViewById(R.id.btn7);
      btn7.setOnClickListener(new View.OnClickListener() {
         @Override
          public voidonClick(View v) {
             // TODOAuto-generated method stub
            showDialog(DIALOG_USER_DEFINED);
          }
       });
       //日起设置对话框
       btn8 =(Button) findViewById(R.id.btn8);
      btn8.setOnClickListener(new View.OnClickListener() {
         @Override
          public voidonClick(View v) {
             // TODOAuto-generated method stub
            showDialog(DIALOG_DATE_PICKER);
          }
       });
       //时间设置对话框
       btn9 =(Button) findViewById(R.id.btn9);
      btn9.setOnClickListener(new View.OnClickListener() {
         @Override
          public voidonClick(View v) {
             // TODOAuto-generated method stub
            showDialog(DIALOG_TIMER_PICKER);
          }
       });
       //进度条处理
      mProgressHandler = new Handler() {
         @Override
          public voidhandleMessage(Message msg) {
             // TODOAuto-generated method stub
            super.handleMessage(msg);
             if(mProgress >= MAX_PROGRESS) {
               mProgressDialog.dismiss();
             } else{
               mProgress++;
               mProgressDialog.incrementProgressBy(1);
               mProgressHandler.sendEmptyMessageDelayed(0, 100);
             }
          }
       };
       //给定义的日期和时间赋值
       finalCalendar c = Calendar.getInstance();
       myYear =c.get(Calendar.YEAR);
       myMonth =c.get(Calendar.MONTH);
       myDay =c.get(Calendar.DAY_OF_MONTH);
       myHour =c.get(Calendar.HOUR_OF_DAY);
       myMinute =c.get(Calendar.MINUTE);
    }

   @Override
    protectedDialog onCreateDialog(int id) {
       // TODOAuto-generated method stub
       switch (id){
       caseSURE_OR_QUIT:
          return newAlertDialog.Builder(MainActivity.this)
               .setIcon(R.drawable.ic_launcher)
               .setTitle("您确定要取消吗?")
               .setPositiveButton("确定",
                      newDialogInterface.OnClickListener() {
                         public voidonClick(DialogInterface dialog,
                               intwhichButton) {
                           showMyDialog("你选择了确定按钮");
                         }
                      })
               .setNegativeButton("取消",
                      newDialogInterface.OnClickListener() {
                         public voidonClick(DialogInterface dialog,
                               intwhichButton) {
                           showMyDialog("你选择了取消按钮");
                         }
                     }).create();
       caseMULTI_BTN:
          return newAlertDialog.Builder(MainActivity.this)
               .setIcon(R.drawable.ic_launcher)
               .setTitle("选择")
               .setMessage("你最喜欢那种开发语言")
               .setPositiveButton("JAVA",
                      newDialogInterface.OnClickListener() {
                         public voidonClick(DialogInterface dialog,
                               int which){
                           showMyDialog("你选择了JAVA");
                         }
                      })
               .setNeutralButton("C++",
                      newDialogInterface.OnClickListener() {
                         public voidonClick(DialogInterface dialog,
                               int which){
                           showMyDialog("你选择了C++");
                         }
                      })
               .setNegativeButton("PHP",
                      newDialogInterface.OnClickListener() {
                         public voidonClick(DialogInterface dialog,
                               int which){
                           showMyDialog("你选择了PHP");
                         }
                     }).create();
       caseLIST_DIALOG:
          return newAlertDialog.Builder(MainActivity.this)
               .setTitle("联盟最好的开发语言")
               .setIcon(R.drawable.ic_launcher)
               .setItems(R.array.develop_language,
                      newDialogInterface.OnClickListener() {
                         public voidonClick(DialogInterface dialog,
                               int which){
                            String[]items = getResources()
                                 .getStringArray(
                                       R.array.develop_language);
                           showMyDialog("你选择了:" + (which + 1) + " , "
                                  +items[which]);
                         }
                     }).create();
       caseDIALOG_PROGRESS:
         mProgressDialog = new ProgressDialog(MainActivity.this);
         mProgressDialog.setIcon(R.drawable.ic_launcher);
         mProgressDialog.setTitle("程序正在处理中,请稍候...");
         mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
         mProgressDialog.setMax(MAX_PROGRESS);
         mProgressDialog.setButton(DialogInterface.BUTTON_POSITIVE,"隐藏",
                newDialogInterface.OnClickListener() {
                   public voidonClick(DialogInterface dialog,
                         intwhichButton) {

                   }
                });
         mProgressDialog.setButton(DialogInterface.BUTTON_NEGATIVE,"取消",
                newDialogInterface.OnClickListener() {
                   public voidonClick(DialogInterface dialog,
                         intwhichButton) {

                   }
                });
          returnmProgressDialog;
       caseDIALOG_SINGLE_CHOICE:
          return newAlertDialog.Builder(MainActivity.this)
               .setIcon(R.drawable.ic_launcher)
               .setTitle("请选择你最喜欢的开发语言")
               .setSingleChoiceItems(R.array.develop_language, 0,
                      newDialogInterface.OnClickListener() {
                         public voidonClick(DialogInterface dialog,
                               intwhichButton) {
                            selectedId =whichButton;
                         }
                      })
               .setPositiveButton("确定",
                      newDialogInterface.OnClickListener() {
                         public voidonClick(DialogInterface dialog,
                               intwhichButton) {
                            String[]items = getResources()
                                 .getStringArray(
                                       R.array.develop_language);
                           showMyDialog("你选择了:" + (selectedId + 1)
                                  + " , " +items[selectedId]);
                         }
                      })
               .setNegativeButton("取消",
                      newDialogInterface.OnClickListener() {
                         public voidonClick(DialogInterface dialog,
                               intwhichButton) {

                         }
                     }).create();
       caseDIALOG_MULTIPLE_CHOICE:
          choiceID =new ArrayList<Integer>();
          String[]items = getResources().getStringArray(
               R.array.develop_language);
          return newAlertDialog.Builder(MainActivity.this)
               .setIcon(R.drawable.ic_launcher)
               .setTitle("请选择你喜欢的开发语言")
               .setMultiChoiceItems(R.array.develop_language,
                      newboolean[items.length],
                      newDialogInterface.OnMultiChoiceClickListener() {
                         public voidonClick(DialogInterface dialog,
                               int which,boolean isChecked) {
                            if(isChecked) {
                              choiceID.add(which);
                            } else{
                              Iterator<Integer> iter =choiceID
                                    .iterator();
                               while(iter.hasNext()) {
                                  if(iter.next() == which) {
                                    iter.remove();
                                  }
                               }
                            }
                         }
                      })
               .setPositiveButton("确定",
                      newDialogInterface.OnClickListener() {
                         public voidonClick(DialogInterface dialog,
                               intwhichButton) {
                            String str ="";
                            String[]items = getResources()
                                 .getStringArray(
                                       R.array.develop_language);
                            int size =choiceID.size();
                            if (size ==0) {
                              showMyDialog("你什么都没选");
                            } else{
                               for (int i =0; i < size; i++) {
                                  if ((size -i) == 1) {
                                     str +=items[choiceID.get(i)];
                                  } else{
                                     str +=items[choiceID.get(i)]
                                           + ",";
                                  }
                               }
                              showMyDialog("你选择的是" + str);
                            }
                         }
                      })
               .setNegativeButton("取消",
                      newDialogInterface.OnClickListener() {
                         public voidonClick(DialogInterface dialog,
                               intwhichButton) {

                         }
                     }).create();
       caseDIALOG_USER_DEFINED:
         LayoutInflater factory =LayoutInflater.from(MainActivity.this);
          final ViewtextEntryView = factory.inflate(
               R.layout.alert_dialog_user_defined, null);
          return newAlertDialog.Builder(MainActivity.this)
               .setIcon(R.drawable.ic_launcher)
               .setTitle("请输入您的用户名和密码")
               .setView(textEntryView)
               .setPositiveButton("确定",
                      newDialogInterface.OnClickListener() {
                         public voidonClick(DialogInterface dialog,
                               intwhichButton) {
                            EditTextuserName = (EditText) textEntryView
                                 .findViewById(R.id.username_edit);
                            EditTextpassword = (EditText) textEntryView
                                 .findViewById(R.id.password_edit);
                           showMyDialog("姓名 :"
                                  +userName.getText().toString()
                                  +",密码:"
                                  +password.getText().toString());

                         }
                      })
               .setNegativeButton("取消",
                      newDialogInterface.OnClickListener() {
                         public voidonClick(DialogInterface dialog,
                               intwhichButton) {

                         }
                     }).create();
       caseDIALOG_DATE_PICKER:
          return newDatePickerDialog(this, myDateSetListener, myYear,
                myMonth,myDay);
       caseDIALOG_TIMER_PICKER:
          return newTimePickerDialog(this, myTimeSetListener, myHour,
                myMinute,false);
       }
       returnnull;
    }
   
   @Override
    protectedvoid onPrepareDialog(int id, Dialog dialog) {
       switch (id){
          case DIALOG_TIMER_PICKER:
              ((TimePickerDialog) dialog).updateTime(myHour, myMinute);
              break;
          case DIALOG_DATE_PICKER:
              ((DatePickerDialog) dialog).updateDate(myYear, myMonth,myDay);
              break;
       }
    }
    //日期设置监听器
    privateDatePickerDialog.OnDateSetListener myDateSetListener = newDatePickerDialog.OnDateSetListener() {
       public voidonDateSet(DatePicker view, int year, int monthOfYear,
             intdayOfMonth) {
          myYear =year;
          myMonth =monthOfYear;
          myDay =dayOfMonth;
         showMyDialog("您设置的日期是:" + myYear + "-" + (myMonth + 1) + "-" +myDay);
       }
    };
    //时间设置监听器
    privateTimePickerDialog.OnTimeSetListener myTimeSetListener = newTimePickerDialog.OnTimeSetListener() {
       public voidonTimeSet(TimePicker view, int hourOfDay, int minute) {
          myHour =hourOfDay;
          myMinute =minute;
         showMyDialog("您设置的时间是:" + parse(myHour) + ":" +parse(myMinute));
       }
    };
    //时间转换
    privatestatic String parse(int c) {
       if (c >= 10)
           return String.valueOf(c);
       else
           return "0" + String.valueOf(c);
    }

    //自定义对话框内容
    private voidshowMyDialog(String str) {
       newAlertDialog.Builder(MainActivity.this).setMessage(str).show();
    }

}
运行结果如下:
Android <wbr>Dialog的多种对话框整理案例

Android <wbr>Dialog的多种对话框整理案例

Android <wbr>Dialog的多种对话框整理案例

Android <wbr>Dialog的多种对话框整理案例

Android <wbr>Dialog的多种对话框整理案例

Android <wbr>Dialog的多种对话框整理案例

Android <wbr>Dialog的多种对话框整理案例

Android <wbr>Dialog的多种对话框整理案例

Android <wbr>Dialog的多种对话框整理案例

Android <wbr>Dialog的多种对话框整理案例
0 0
原创粉丝点击