ANDROID笔记:Dialog的几种用法

  1 package com.example.android_dialog;
  2 
  3 import java.util.Calendar;
  4 
  5 import android.app.Activity;
  6 import android.app.AlertDialog;
  7 import android.app.DatePickerDialog;
  8 import android.app.TimePickerDialog;
  9 import android.os.Bundle;
 10 import android.view.Gravity;
 11 import android.view.LayoutInflater;
 12 import android.view.View;
 13 import android.view.View.OnClickListener;
 14 import android.widget.Button;
 15 import android.widget.DatePicker;
 16 import android.widget.EditText;
 17 import android.widget.PopupWindow;
 18 import android.widget.TimePicker;
 19 import android.widget.Toast;
 20 
 21 /**
 22  * Dialog的几种用法
 23  * 
 24  * @author Administrator
 25  * 
 26  */
 27 public class MainActivity extends Activity implements OnClickListener {
 28     TimePickerDialog.OnTimeSetListener timeSetListener;
 29     DatePickerDialog.OnDateSetListener dateSetListener;
 30 
 31     @Override
 32     protected void onCreate(Bundle savedInstanceState) {
 33         super.onCreate(savedInstanceState);
 34         setContentView(R.layout.activity_main);
 35 
 36         Button button = (Button) findViewById(R.id.btn);
 37         button.setOnClickListener(this);
 38 
 39         Button button1 = (Button) findViewById(R.id.btn1);
 40         button1.setOnClickListener(this);
 41         Button button2 = (Button) findViewById(R.id.btn2);
 42         button2.setOnClickListener(this);
 43 
 44         Button button3 = (Button) findViewById(R.id.btn3);
 45         button3.setOnClickListener(this);
 46         // 日期Dialog的监听类
 47         dateSetListener = new DatePickerDialog.OnDateSetListener() {
 48 
 49             @Override
 50             public void onDateSet(DatePicker view, int year, int monthOfYear,
 51                     int dayOfMonth) {
 52                 Toast.makeText(getApplicationContext(),
 53                         year + "--" + monthOfYear + "--" + dayOfMonth,
 54                         Toast.LENGTH_SHORT).show();
 55 
 56             }
 57         };
 58         // 时间Dialog的监听类
 59         timeSetListener = new TimePickerDialog.OnTimeSetListener() {
 60 
 61             @Override
 62             public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
 63                 Toast.makeText(getApplicationContext(),
 64                         hourOfDay + ":" + minute, Toast.LENGTH_SHORT).show();
 65             }
 66         };
 67     }
 68 
 69     @Override
 70     public void onClick(View v) {
 71         AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
 72         Calendar calendar = Calendar.getInstance();
 73 
 74         final AlertDialog dialog;
 75         switch (v.getId()) {
 76         // 普通Dialog界面
 77         case R.id.btn:
 78             dialog = builder.create();
 79             dialog.setTitle("提醒");
 80             dialog.setIcon(R.drawable.ic_launcher);
 81             dialog.setMessage("登录失败");
 82             dialog.show();
 83             break;
 84         // 自定Dialog自定义界面
 85         case R.id.btn1: {
 86             dialog = builder.create();
 87             dialog.setTitle("提醒");
 88             dialog.setIcon(R.drawable.ic_launcher);
 89             // 加载界面
 90             LayoutInflater inflater = LayoutInflater.from(MainActivity.this);
 91             View view = inflater.inflate(R.layout.dialogtest, null);
 92             final EditText editText = (EditText) view
 93                     .findViewById(R.id.editText1);
 94             final EditText editText2 = (EditText) view
 95                     .findViewById(R.id.editText2);
 96             Button button = (Button) view.findViewById(R.id.okbtn);
 97             button.setOnClickListener(new OnClickListener() {
 98 
 99                 @Override
100                 public void onClick(View v) {
101                     Toast.makeText(
102                             getApplicationContext(),
103                             editText.getText().toString() + "-----"
104                                     + editText2.getText().toString(),
105                             Toast.LENGTH_SHORT).show();
106                     dialog.dismiss();
107                 }
108             });
109             // dialog加载界面
110             dialog.setView(view);
111             dialog.show();
112         }
113             break;
114         case R.id.btn2:
115             // 日期Dialog
116             DatePickerDialog datePickerDialog = new DatePickerDialog(
117                     MainActivity.this, dateSetListener,
118                     calendar.get(calendar.YEAR), calendar.get(calendar.MONTH),
119                     calendar.get(calendar.DAY_OF_MONTH));
120             // 时间Dialog
121             TimePickerDialog timePickerDialog = new TimePickerDialog(
122                     MainActivity.this, timeSetListener,
123                     calendar.get(calendar.HOUR_OF_DAY),
124                     calendar.get(calendar.MINUTE), true);
125             datePickerDialog.show();
126 
127             break;
128         case R.id.btn3: {
129             // PopupWindow
130             LayoutInflater inflater = LayoutInflater.from(MainActivity.this);
131             View view = inflater.inflate(R.layout.dialogtest, null);
132             final PopupWindow popupWindow = new PopupWindow(view, 320, 320);
133             Button button = (Button) view.findViewById(R.id.okbtn);
134             button.setOnClickListener(new OnClickListener() {
135 
136                 @Override
137                 public void onClick(View v) {
138                     // popupWindow消失
139                     popupWindow.dismiss();
140 
141                 }
142             });
143             // 在屏幕底部显示
144             popupWindow.showAtLocation(v, Gravity.BOTTOM, 0, 0);
145         }
146             break;
147         }
148 
149     }
150 }

posted @ 2013-10-22 17:28  skyko  阅读(366)  评论(0编辑  收藏  举报