Android软件开发之盘点所有Dialog对话框大合集

来源:互联网 发布:乐乎城市青年公寓好吗 编辑:程序博客网 时间:2024/05/21 10:07
此处代码可运行,自己做7个按钮接入ID,即可运行
public class MainActivity extends Activity {private int mSingleChoice = -1; // 用于记录单选中的idprivate List<Integer> checkItems = new ArrayList<Integer>();/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);Button button1 = (Button) findViewById(R.id.button1);Button button2 = (Button) findViewById(R.id.button2);Button button3 = (Button) findViewById(R.id.button3);Button button4 = (Button) findViewById(R.id.button4);Button button5 = (Button) findViewById(R.id.button5);Button button6 = (Button) findViewById(R.id.button6);Button button7 = (Button) findViewById(R.id.button7);// 设置监听事件button1.setOnClickListener(new ButtonOne());button2.setOnClickListener(new ButtonTwo());button3.setOnClickListener(new ButtonThree());button4.setOnClickListener(new ButtonFour());button5.setOnClickListener(new ButtonFive());button6.setOnClickListener(new ButtonSix());button7.setOnClickListener(new ButtonSeven());}/** * 确定取消对话框 *  * @author Administrator *  */private final class ButtonOne implements View.OnClickListener {@Overridepublic void onClick(View v) {// 使用AlerDialog.Builder创建对话框Builder builder = new Builder(MainActivity.this);// 使用builder设置对话框的title button iconbuilder.setIcon(R.drawable.icon);builder.setTitle(R.string.dialog_button1_title);builder.setMessage("萨达萨达大胆");// 对话框中有2个按钮 通过调用 setPositiveButton 方法// 和 setNegativeButton 方法 可以设置按钮的显示内容以及按钮的监听事件builder.setPositiveButton(R.string.dialog_button1_button1,new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {/* * new Builder(MainActivity.this).setMessage( * "你已经退出!!").show(); */// 用吐司的方式显示信息Toast.makeText(MainActivity.this, "你没有退出!!",Toast.LENGTH_LONG).show();}});builder.setNegativeButton(R.string.dialog_button1_button2,new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub/* * new Builder(MainActivity.this).setMessage( * "你没有退出!!").show(); */// 用吐司的方式显示信息Toast.makeText(MainActivity.this, "你没有退出!!",Toast.LENGTH_LONG).show();}});builder.create().show();}}/** * 多个按钮信息框 *  * @author Administrator *  */private final class ButtonTwo implements View.OnClickListener {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubBuilder builder = new Builder(MainActivity.this);builder.setIcon(R.drawable.icon);builder.setTitle("投票");builder.setMessage("你认为什么样的内容能吸引您?");builder.setPositiveButton("有趣味的",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubtoastModel("有趣味的!!");}});builder.setNeutralButton("有思想的",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubtoastModel("有思想的!!");}});builder.setNegativeButton("主题强的",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubtoastModel("主题强的!!");}});builder.create().show();}}/** * 列表框 *  * @author Administrator *  */private final class ButtonThree implements View.OnClickListener {@Overridepublic void onClick(View v) {// 这个数组用于列表选择final String items[] = { "item0", "item1", "item2", "item3","item4", "item5" };Builder builder = new Builder(MainActivity.this);builder.setTitle("列表选着框");builder.setItems(items, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubtoastModel("你选择的id为" + which + "," + items[which]);}});builder.create().show();}}/** * 进度条 *  * @author Administrator *  */private final class ButtonFour implements View.OnClickListener {@Overridepublic void onClick(View v) {/** * 点击进度条框按钮后 开启一个线程计算读取的进度 假设读取结束为 100 Progress在小于100的时候一直在线程中做循环++ * 只到读取结束后,停止线程。 */final ProgressDialog mProgressDialog = new ProgressDialog(MainActivity.this);mProgressDialog.setIcon(R.drawable.icon);mProgressDialog.setTitle("进度条窗口");mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);// 设置进度条显示类型mProgressDialog.setMax(100);// 设置进度条大小mProgressDialog.setButton("确定",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub}});mProgressDialog.setButton2("取消",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub}});mProgressDialog.show();new Thread() {public void run() {int progress = 0;while (progress < 100) {try {Thread.sleep(500);progress++;mProgressDialog.incrementProgressBy(1);// 设置进度条每次走的长度} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}.start();}}/** * 单项选择列表框 *  * @author Administrator *  */private final class ButtonFive implements View.OnClickListener {@Overridepublic void onClick(View v) {final String items[] = { "item0", "item1", "item2", "item3","item4", "item5" };mSingleChoice = -1;// 使用AlerDialog.Builder创建对话框Builder builder = new Builder(MainActivity.this);// 使用builder设置对话框的title button iconbuilder.setIcon(R.drawable.icon);builder.setTitle("单项选择");// 第二个参数用于设置默认选项builder.setSingleChoiceItems(items, 0,new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubmSingleChoice = which;toastModel("你选择的id为" + which + "," + items[which]);}});builder.setPositiveButton("确定",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {/* * new Builder(MainActivity.this).setMessage( * "你已经退出!!").show(); */// 用吐司的方式显示信息Toast.makeText(MainActivity.this,"你选择的是" + mSingleChoice, Toast.LENGTH_LONG).show();}});builder.setNegativeButton("取消",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub/* * new Builder(MainActivity.this).setMessage( * "你没有退出!!").show(); */// 用吐司的方式显示信息}});builder.create().show();}}/** * 多像选择列表框 *  * @author Administrator *  */private final class ButtonSix implements View.OnClickListener {@Overridepublic void onClick(View v) {// 这个数组用于列表选择final String items[] = { "item0", "item1", "item2", "item3","item4", "item5" };/** * checkItems 用于记录多选选中的id号 存在ArrayList中 选中后 add 进ArrayList 取消选中后 * remove 出ArrayList。 * 数组最好用Map存取,在这里为了方便我采用了list.如果你采用list在项目中就会出现bug,比如你先选择0和2 * 再选择1,然后取消1,你就会发现提示你的结果是你选中的0和1 */checkItems.clear(); // 清空数组Builder builder = new Builder(MainActivity.this);builder.setIcon(R.drawable.icon);builder.setTitle("多项选择");builder.setMultiChoiceItems(items, new boolean[] { false, false,false, false, false, false },new DialogInterface.OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which,boolean isChecked) {// TODO Auto-generated method stubif (isChecked) {checkItems.add(which);toastModel("你选择的id为" + which + ","+ items[which]);} else {checkItems.remove(which);}}});builder.setPositiveButton("确定",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {String str = "";int size = checkItems.size();for (int i = 0; i < size; i++) {str += items[checkItems.get(i)] + "";}toastModel("你选择的是" + str);}});builder.setNegativeButton("取消",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}});builder.create().show();}}/** * 读取进度框  *  * @author Administrator *  */private final class ButtonSeven implements View.OnClickListener {@Overridepublic void onClick(View v) {ProgressDialog mProgressDialog = new ProgressDialog(MainActivity.this);mProgressDialog.setTitle("读取ing");mProgressDialog.setMessage("正在读取中请稍后");mProgressDialog.setIndeterminate(true);mProgressDialog.setCancelable(true);mProgressDialog.show();}}/** * 设置吐司方法 *  * @param title *            传入要显示的字符窜 */private final void toastModel(String title) {Toast.makeText(MainActivity.this, title, Toast.LENGTH_LONG).show();}}