AlertDialog Demo详解大全

AlertDialog Demo详解大全:参考延引自:http://www.oschina.net/question/54100_32486


package com.wqn.test.activity;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.GradientDrawable.Orientation;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.wqn.test.R;
import com.wqn.test.domain.ArrayListSerializable;
import com.wqn.test.domain.Menu;
import com.wqn.test.domain.Person;

/**
 * 在两个Activity 之间进行 传输List<Object> 
 * @author admin
 *
 */
public class BundlerTransListObjectActvity extends Activity implements OnClickListener{

	private TextView serializable;
	private TextView parcelable;
	private TextView exitDialog;
	private TextView threeBtDialog;
	private TextView editTextDialog;
	private TextView multiChoiceDialog;
	private TextView singleChoiceDialog;
	private TextView listItemsDialog;
	private TextView customsDialog;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		initViews();
		initEvents();
	}
	
	private void initViews() {
		serializable = (TextView) findViewById(R.id.serialiable);
		parcelable = (TextView) findViewById(R.id.parcelable);
		exitDialog = (TextView) findViewById(R.id.exit_dialog);
		threeBtDialog = (TextView) findViewById(R.id.three_bt_dialog);
		editTextDialog = (TextView) findViewById(R.id.edittext_dialog);
		multiChoiceDialog = (TextView) findViewById(R.id.multi_choice_dialog);
		singleChoiceDialog = (TextView) findViewById(R.id.single_choice_dialog);
		listItemsDialog = (TextView) findViewById(R.id.list_items_dialog);
		customsDialog = (TextView) findViewById(R.id.customs_dialog);
	}
	
	private void initEvents() {
		serializable.setOnClickListener(this);
		parcelable.setOnClickListener(this);
		exitDialog.setOnClickListener(this);
		threeBtDialog.setOnClickListener(this);
		editTextDialog.setOnClickListener(this);
		multiChoiceDialog.setOnClickListener(this);
		singleChoiceDialog.setOnClickListener(this);
		listItemsDialog.setOnClickListener(this);
		customsDialog.setOnClickListener(this);
	}
	
	private void loadSerializableData(){
		ArrayListSerializable<Menu> menus = new ArrayListSerializable<Menu>();
		for (int i=0 ; i<10; i++) {
			Menu menu = new Menu();
			menu.setId((long)i);
			menu.setMenuName("菜单" + i);
			menus.add(menu);
		}
		final Intent it = new Intent();
		it.setClass(this, ReceiverListObjectActivity.class);
		Bundle bundle = new Bundle();
		bundle.putSerializable("menus", menus);
		it.putExtra("which", "serializable");
		it.putExtras(bundle);
		
		new Timer().schedule(new TimerTask() {
			
			@Override
			public void run() {
				startActivity(it);
			}
		}, 2000);
	}
	
	private void loadParcelableData(){
		Person person = new Person();
		person.setId(new Random().nextLong());
		person.setName("personName");
		final Intent it = new Intent();
		it.setClass(this, ReceiverListObjectActivity.class);
		Bundle bundle = new Bundle();
		bundle.putParcelable("person", person);
		it.putExtra("which", "parcelable");
		it.putExtras(bundle);
		
		new Timer().schedule(new TimerTask() {
			
			@Override
			public void run() {
				startActivity(it);
			}
		}, 2000);
	}
	
	private void exitDialogShow() {
		AlertDialog.Builder dialogBuilder = new Builder(this);
		dialogBuilder.setTitle("提示");
		dialogBuilder.setMessage("确定退出吗?");
		dialogBuilder.setIcon(R.drawable.ic_launcher);
		dialogBuilder.setPositiveButton("确定", new AlertDialog.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(BundlerTransListObjectActvity.this, "您点击了确定键", Toast.LENGTH_SHORT).show();
				dialog.dismiss();
			}
		})
		
		.setNegativeButton("取消", new AlertDialog.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(BundlerTransListObjectActvity.this, "您点击了取消键", Toast.LENGTH_SHORT).show();
				dialog.dismiss();
			}
		})
		.create().show();
	}
	
	/**三个按钮的dialog*/
	private void threeBtDialogShow() {
		new AlertDialog.Builder(this)
		.setTitle("问卷调查")
		.setMessage("你觉得Android开发前途怎么样?")
		.setIcon(android.R.drawable.btn_star)
		.setPositiveButton("非常好", new AlertDialog.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(BundlerTransListObjectActvity.this, "你觉得Android开发前途非常好!", Toast.LENGTH_SHORT).show();
				dialog.dismiss();
			}
		})
		.setNegativeButton("非常差", new AlertDialog.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(BundlerTransListObjectActvity.this, "你觉得Android开发前途非常差!", Toast.LENGTH_SHORT).show();
				dialog.dismiss();
			}
		})
		.setNeutralButton("一般", new AlertDialog.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(BundlerTransListObjectActvity.this, "你觉得Android开发前途一般!", Toast.LENGTH_SHORT).show();
				dialog.dismiss();
			}
		}).show();
	} 
	
	/**带编辑框的dialog*/
	private void editTextDialogShow() {
		final EditText dialogEditext = new EditText(this);
		new AlertDialog.Builder(this)
		.setTitle("请输入")
		.setIcon(android.R.drawable.ic_dialog_info)
		.setView(dialogEditext)
		.setPositiveButton("确定", new AlertDialog.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(BundlerTransListObjectActvity.this, "您点击了确定键\n输入的内容为:"+dialogEditext.getText(), Toast.LENGTH_SHORT).show();
				dialog.dismiss();
			}
		})
		
		.setNegativeButton("取消", new AlertDialog.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(BundlerTransListObjectActvity.this, "您点击了取消键\n输入的内容为:"+dialogEditext.getText(), Toast.LENGTH_SHORT).show();
				dialog.dismiss();
			}
		})
		.create().show();
	} 
	
	/** 多选 dialog*/
	private void multiChoiceDialogShow() {
		final String items[] = new String[]{"Android","IOS"};
		final boolean isCheckeds[] = new boolean[] {false,false};
		new AlertDialog.Builder(this)
		.setTitle("请选择")
		.setIcon(android.R.drawable.ic_dialog_info)
		.setMultiChoiceItems(items, isCheckeds, new AlertDialog.OnMultiChoiceClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which, boolean isChecked) {
				if (isCheckeds[which]) {
					Toast.makeText(BundlerTransListObjectActvity.this, "您选中了第" + which +"个选项,内容为:" + items[which], Toast.LENGTH_SHORT).show();
				} else {
					Toast.makeText(BundlerTransListObjectActvity.this, "您取消选中第" + which +"个选项,内容为:" + items[which], Toast.LENGTH_SHORT).show();
				}
			}
		})
		.setPositiveButton("确定", new AlertDialog.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(BundlerTransListObjectActvity.this, "您点击了确定键", Toast.LENGTH_SHORT).show();
				dialog.dismiss();
			}
		})
		
		.setNegativeButton("取消", new AlertDialog.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(BundlerTransListObjectActvity.this, "您点击了取消键", Toast.LENGTH_SHORT).show();
				dialog.dismiss();
			}
		})
		.create().show();
	} 
	
	/** 单选 dialog*/
	private void singleChoiceDialogShow() {
		final String items[] = new String[]{"Android","IOS"};
		new AlertDialog.Builder(this)
		.setTitle("请选择")
		.setIcon(android.R.drawable.ic_dialog_info)
		.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(BundlerTransListObjectActvity.this, "您选中了第" + which +"个选项,内容为:" + items[which], Toast.LENGTH_SHORT).show();
			}
		})
		.setPositiveButton("确定", new AlertDialog.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(BundlerTransListObjectActvity.this, "您点击了确定键", Toast.LENGTH_SHORT).show();
				dialog.dismiss();
			}
		})
		
		.setNegativeButton("取消", new AlertDialog.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(BundlerTransListObjectActvity.this, "您点击了取消键", Toast.LENGTH_SHORT).show();
				dialog.dismiss();
			}
		})
		.create().show();
	} 
	
	/** 列表 dialog*/
	private void listItemsDialogShow() {
		final String items[] = new String[]{"Android","IOS"};
		new AlertDialog.Builder(this)
		.setTitle("请选择")
		.setIcon(android.R.drawable.ic_dialog_info)
		.setItems(items, new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(BundlerTransListObjectActvity.this, "您选中了第" + which +"个选项,内容为:" + items[which], Toast.LENGTH_SHORT).show();
			}
		})
		.setPositiveButton("确定", new AlertDialog.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(BundlerTransListObjectActvity.this, "您点击了确定键", Toast.LENGTH_SHORT).show();
				dialog.dismiss();
			}
		})
		
		.setNegativeButton("取消", new AlertDialog.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(BundlerTransListObjectActvity.this, "您点击了取消键", Toast.LENGTH_SHORT).show();
				dialog.dismiss();
			}
		})
		.create().show();
	} 
	
	/** 自定义 dialog*/
	private void customsDialogShow() {
		final String items[] = new String[]{"Android","IOS"};
		LinearLayout customLLayout = new LinearLayout(this);
		int W,H;
		customLLayout.setBackgroundColor(Color.parseColor("#ffffff"));
		LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);
		customLLayout.setLayoutParams(llp);
		
		DisplayMetrics dm = new DisplayMetrics();
		getWindowManager().getDefaultDisplay().getMetrics(dm);
		W = dm.widthPixels;
		H = dm.heightPixels;
		
		final TextView hobby = new TextView(this);
		hobby.setText("ID Card:");
		hobby.setTextColor(Color.parseColor("#555555"));
		hobby.setTextSize(13);
		LinearLayout.LayoutParams llpTitle = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.MATCH_PARENT);
		llpTitle.setMargins(15, 0, 15, 0);
		hobby.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL);
		hobby.setLayoutParams(llpTitle);
		customLLayout.addView(hobby);
		
		final EditText content = new EditText(this);
		content.setWidth(W - hobby.getWidth() - 30);
		content.setTextColor(Color.parseColor("#ff0000"));
		
		customLLayout.addView(content);
		new AlertDialog.Builder(this)
		.setTitle("请选择")
		.setIcon(android.R.drawable.ic_dialog_info)
		.setView(customLLayout)
		.setPositiveButton("确定", new AlertDialog.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(BundlerTransListObjectActvity.this, "您点击了确定键\nID Card:"  + content.getText(), Toast.LENGTH_SHORT).show();
				dialog.dismiss();
			}
		})
		
		.setNegativeButton("取消", new AlertDialog.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(BundlerTransListObjectActvity.this, "您点击了取消键\nID Card:"  + content.getText(), Toast.LENGTH_SHORT).show();
				dialog.dismiss();
			}
		})
		.create().show();
	} 

	@Override
	public void onClick(View v) {
		if (v ==  serializable) {
			loadSerializableData();
		} else if (v == parcelable) {
			loadParcelableData();
		} else if (v == exitDialog) {
			exitDialogShow();
		}  else if (v == threeBtDialog) {
			threeBtDialogShow();
	    } else if (v == editTextDialog) {
	    	editTextDialogShow();
	    } else if (v == multiChoiceDialog) {
	    	multiChoiceDialogShow();
	    } else if (v == singleChoiceDialog) {
	    	singleChoiceDialogShow();
	    } else if (v == listItemsDialog) {
	    	listItemsDialogShow();
	    } else if (v == customsDialog) {
	    	customsDialogShow();
	    } 
		
	}
}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值