package com.he.h0317_dialog; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.text.Html; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.SimpleAdapter; import android.widget.TableLayout; import android.widget.Toast; public class MainActivity extends Activity { private Button commonDialog; private Button radioButtonDialog; private Button checkboxDialog; private Button listDialog; private Button customDialog; private static final int NOTIFICATION_ID = 0x1101; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(); } public void findViewById() { commonDialog = (Button) findViewById(R.id.commonDialog); radioButtonDialog = (Button) findViewById(R.id.radioButtonDialog); checkboxDialog = (Button) findViewById(R.id.checkboxDialog); listDialog = (Button) findViewById(R.id.listDialog); customDialog = (Button) findViewById(R.id.customDialog); commonDialog.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { openCommonDialog(); } }); radioButtonDialog.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { openRadioButtonDialog(); } }); checkboxDialog.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { openCheckboxDialog(); } }); listDialog.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { openListDialog(); } }); customDialog.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { openCustomDialog(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } /** * 普通的对话框 */ public void openCommonDialog() { //builder 设计模式 final AlertDialog.Builder builder = new AlertDialog.Builder(this); //设置对话框的标题 builder.setTitle("请确认您的电子邮箱地址"); builder.setMessage(Html.fromHtml("<font color=‘red‘>消息内容了</font>")); builder.setIcon(getResources().getDrawable(R.drawable.mail)); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "取消按钮, which: " + which, Toast.LENGTH_SHORT).show(); } }); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Notification notify = new Notification(R.drawable.games, "确认按钮, which:" + which, System.currentTimeMillis()); //为notify设置声音 notify.defaults = Notification.DEFAULT_SOUND; //为notify设置默认声音、默认震动、默认闪光灯 notify.defaults = Notification.DEFAULT_ALL; Intent intent = new Intent(MainActivity.this, MainActivity.class); //Context context, int requestCode, Intent intent, int flags PendingIntent pi = PendingIntent.getActivity(MainActivity.this, 0, intent, 0); //让声音、振动无限循环,直到用户响应 notify.flags |= Notification.FLAG_INSISTENT; //通知被点击后,自动消失 notify.flags |= Notification.FLAG_AUTO_CANCEL; //点击‘Clear‘时,不清楚该通知(QQ的通知无法清除,就是用的这个) notify.flags |= Notification.FLAG_NO_CLEAR; //设置事件信息 notify.setLatestEventInfo(MainActivity.this, "通知 contentTitle", "通知 contentText", pi); //获取系统的NotificationManager 服务 NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); notificationManager.notify(NOTIFICATION_ID, notify); } }); builder.setNeutralButton("中立的按钮", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "中立按钮, which: " + which, Toast.LENGTH_SHORT).show(); } }); Dialog dialog = builder.create(); dialog.show(); } /** * 单选按钮对话框 */ public void openRadioButtonDialog() { //builder 设计模式 final AlertDialog.Builder builder = new AlertDialog.Builder(this); //设置对话框的标题 builder.setTitle("请选择您喜欢的项目"); builder.setIcon(getResources().getDrawable(R.drawable.audio_player)); String[] items = new String[]{"游泳", "足球", "电玩"}; builder.setSingleChoiceItems(items, 1, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "你选择了, which: " + which, Toast.LENGTH_SHORT).show(); } }); builder.setPositiveButton("OK", null); Dialog dialog = builder.create(); dialog.show(); } /** * 多选按钮对话框 */ public void openCheckboxDialog() { //builder 设计模式 final AlertDialog.Builder builder = new AlertDialog.Builder(this); //设置对话框的标题 builder.setTitle("请选择您喜欢的项目"); builder.setIcon(getResources().getDrawable(R.drawable.audio_player)); final String[] items = new String[]{"游泳", "足球", "电玩"}; boolean[] select = new boolean[]{true, false, true}; builder.setMultiChoiceItems(items, select, new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { Toast.makeText(MainActivity.this, "你选择了, which: " + items[which] + " " + (isChecked ? "ON" : "OFF") , Toast.LENGTH_SHORT).show(); } }); builder.setPositiveButton("OK", null); Dialog dialog = builder.create(); dialog.show(); } /** * 列表对话框 */ public void openListDialog() { //builder 设计模式 final AlertDialog.Builder builder = new AlertDialog.Builder(this); //设置对话框的标题 builder.setTitle("请选择您喜欢的项目"); builder.setIcon(getResources().getDrawable(R.drawable.radio)); final String[] items = new String[]{"游泳", "足球", "电玩", "进修", "美人"}; final int[] icons = new int[]{R.drawable.audio_player, R.drawable.camera, R.drawable.games, R.drawable.mail, R.drawable.radio}; final List<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>(5); for(int i = 0; i < items.length; i++) { Map<String, Object> item = new HashMap<String, Object>(); item.put("dialog_name", items[i]); item.put("dialog_icon", icons[i]); listItems.add(item); } SimpleAdapter adapter = new SimpleAdapter(this , listItems , R.layout.list_item , new String[]{"dialog_name", "dialog_icon"} , new int[]{R.id.dialog_name, R.id.dialog_icon}); builder.setAdapter(adapter, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Map<String, Object> item = listItems.get(which); Toast.makeText(MainActivity.this, "你选择了, which: " + item.get("dialog_name"), Toast.LENGTH_SHORT).show(); } }); Dialog dialog = builder.create(); dialog.show(); } /** * 自定义对话框 */ public void openCustomDialog() { //builder 设计模式 final AlertDialog.Builder builder = new AlertDialog.Builder(this); //设置对话框的标题 builder.setTitle("请选择您的信息"); builder.setIcon(getResources().getDrawable(R.drawable.radio)); //装载layout final TableLayout login = (TableLayout) getLayoutInflater().inflate(R.layout.login, null); builder.setView(login); builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { EditText usernameEdit = (EditText) login.findViewById(R.id.usernameEdit); if(usernameEdit != null) { Toast.makeText(MainActivity.this, "用户名:" + usernameEdit.getText(), Toast.LENGTH_SHORT).show(); } } }); Dialog dialog = builder.create(); dialog.show(); } }
原文:http://www.cnblogs.com/hzm112567/p/3612356.html