【Android】Android中AlertDialog对话框的使用实例

package com.ceac.deng;

import android.R.string;
import android.support.v7.app.ActionBarActivity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Looper;
import android.os.SystemClock;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Chronometer;
import android.widget.Toast;
import android.widget.Chronometer.OnChronometerTickListener;

public class MainActivity extends ActionBarActivity {

	private Chronometer chronometer;
	private Button stopButton;
	private Button startButton;

	private Button button;
	private Button button2;
	private Button button3;
	private Button button4;

	Thread myThread;

    boolean[] checkedItems = new boolean[] {false, true, false, true, false, true};
    String[] items = new String[] {"植物大战僵尸", "愤怒的 小鸟", "泡泡龙", "开心农场", "QQ飞车", "超级玛丽"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        findView();

        chronometer.setBase(SystemClock.elapsedRealtime());
//        chronometer.setFormat("已经用了多少时间:  %s");
        chronometer.start();

        chronometer.setOnChronometerTickListener(new OnChronometerTickListener() {

			@Override
			public void onChronometerTick(Chronometer chronometer) {
				// TODO Auto-generated method stub
				if (SystemClock.elapsedRealtime() - chronometer.getBase() >= 100000)
				{
					chronometer.stop();
				}
			}
		});

        setListenner();
    }

    /**
     * findView
     */
    private void findView()
    {
    	chronometer = (Chronometer) findViewById(R.id.chronometer1);
    	stopButton = (Button) findViewById(R.id.stop);
    	startButton = (Button) findViewById(R.id.start);

    	button = (Button) findViewById(R.id.button1);
    	button2 = (Button) findViewById(R.id.button2);
    	button3 = (Button) findViewById(R.id.button3);
    	button4 = (Button) findViewById(R.id.button4);

    }

    private void setListenner()
    {
    	stopButton.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				chronometer.stop();
				System.out.println("stop chronometer....");
			}
		});

    	startButton.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				chronometer.setBase(SystemClock.elapsedRealtime());
				chronometer.start();
				System.out.println("start Chronometer....");
			}
		});

    	button.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {

//				showAlertDialog();
				myThread = new Thread(new Runnable() {

					@Override
					public void run() {
						Looper.prepare();
						showAlertDialog();
						System.out.println("hello===============>");
						try {
							Thread.sleep(1000);
						} catch (InterruptedException e) {
							e.printStackTrace();
						}

						Looper.loop();
					}
				});

				myThread.start();

			}
		});

    	button2.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				showListDialog();
			}
		});

    	button3.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				showSingleChoiceDialog();
			}
		});

    	button4.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				showMultiChoiceDialog();
			}
		});

    }

    /**
     * showDialog
     */
    private void showAlertDialog()
    {
//		AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
//		alertDialog.setIcon(R.drawable.ic_launcher);
//		alertDialog.setTitle("系统提示");
//		alertDialog.setMessage("带取消 、中立、确定按钮的对话框");
////		alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "取消", listener);
    	AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
		builder.setIcon(R.drawable.ic_launcher);
		builder.setTitle("系统提示");
		builder.setMessage("带取消 、中立、确定按钮的对话框");

		//确定
		builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {

			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				showToast("点击了确定的按钮");
			}
		});

		//中立
		builder.setNeutralButton("中立", new DialogInterface.OnClickListener() {

			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				showToast("点击了中立按钮");
			}
		});

		//取消
		builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {

			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				showToast("点击了取消按钮");
			}
		});

		builder.show();
    }

    /**
     * 带列表的对话框
     */
    private void showListDialog()
    {
    	final String[] items = new String[] {"跑步", "羽毛球", "足球"};
    	AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
    	builder.setIcon(R.drawable.ic_launcher);
    	builder.setTitle("请选择对应的运动项目");
    	builder.setItems(items, new DialogInterface.OnClickListener() {

			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				showToast(items[which]);
			}
		});
    	builder.show();
    }

    /**
     * 带有单选列表的和一个按钮的对话框
     */
    private void showSingleChoiceDialog()
    {
    	final String[] items = new String[] {"标准模式", "静音模式", "会议模式", "飞行模式", "户外模式"};
    	Builder builder = new AlertDialog.Builder(MainActivity.this);
    	builder.setIcon(R.drawable.ic_launcher);
    	builder.setTitle("请你选择需要的情景模式");
    	builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {

			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				showToast("你选择了" + items[which]);
			}
		});
    	builder.setPositiveButton("确定", null);
    	builder.show();
    }

    /**
     * 带有多选列表项和一个确定按钮的列表对话框
     */
    private void showMultiChoiceDialog()
    {
//    	final boolean[] checkedItems = new boolean[] {false, true, false, true, false};
//    	String[] items = new String[] {"植物大战僵尸", "愤怒的 小鸟", "泡泡龙", "开心农场", "QQ飞车", "超级玛丽"};

    	Builder builder = new AlertDialog.Builder(MainActivity.this);
    	builder.setIcon(R.drawable.ic_launcher);
    	builder.setTitle("请选择你喜欢的游戏");
    	builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {

			@Override
			public void onClick(DialogInterface dialog, int which, boolean isChecked) {
				// TODO Auto-generated method stub
				checkedItems[which] = isChecked;
			}
		});

    	builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {

			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				String result = "";
				for (int i= 0; i < checkedItems.length; i++)
				{
					if (checkedItems[i])
					{
						result += items[i];
						result += "  ";
					}
				}

				if (!"".equals(result))
				{
					showToast(result);
				}
			}
		});

    	builder.show();
    }

    /**
     *
     * @param str
     */
    private void showToast(String str)
    {
    	Toast.makeText(MainActivity.this, str, Toast.LENGTH_LONG).show();
    }

    @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;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

时间: 2024-10-29 08:03:47

【Android】Android中AlertDialog对话框的使用实例的相关文章

Android中 Alertdialog对话框点击消失?

在开发的时候遇到一个问题,就是一触摸对话框边缘外部,对话框会自动消失.这个问题很纠结啊,查找了一下发现从Android 4.0开始,AlertDialog有了变化,就是在触摸对话框边缘外部,对话框会自动消失,查了源码,找到解决办法: 研究其父类时候发现,可以设置这么一条属性,在AlertDialog.Builder.create()之后才能调用这两个方法 方法一: setCanceledOnTouchOutside(false);调用这个方法时,按对话框以外的地方不起作用.按返回键还起作用 方法

android:常用的AlertDialog对话框及自定义对话框

常用的Dialog有确认对话框,单选按钮对话框,多选按钮对话框,复选按钮对话框另外还有自定义的对话框 AlertDialog的常用方法 setTitle:为对话框设置标题 setMessage:为对话框设置内容 setIcon:为对话框设置图标 setItems设置对话框要显示的list setMultiChoiceItems:一般用于复选框显示 setSingleChoiceItem:,设置单选按钮 setNeutralButton:普通按钮 setPositiveButton:添加确定按钮

Android API中的对话框

Android API中提供了四个Dialog的自定义子类: AlertDialog ProgressDialog DatePackerDialog TimePickerDialog 也可以派生出自己的Dialog子类 在任何一个活动中,通常都可以使用onCreateDialog(this)方法来创建一个基本的对话框.Android用这个方法来跟踪所创建的对话框 比如:这个对话框属于哪个活动,以及它现在的状态如何 要显示一个已经创建的对话框,可以使用showDialog(int)方法,其中参数指

Android中AlertDialog对话框禁止按[返回键]或[搜索键]

alertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() { @Override public boolean onKey(DialogInterface dialog, int keyCode,KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_SEARCH) { return true; } else { return false; // 默认返回 false } } })

Android 5中样式对话框

package com.imooc.dialog; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.DialogInterface; import android.os.Bundle; import android.view.LayoutInflater; import android.view.V

Android: 创建一个AlertDialog对话框,必须按确定或取消按钮才能关闭对话框,禁止按[返回键]或[搜索键]关闭

AlertDialog.Builder builder = new Builder(this); builder.create().show(); 这样显示出来的对话框,当用户按返回键或搜索键时,这个对话框也能关闭. 怎样才能实现一个类似在windows系统上的对话框,必须点对话框上的按钮后,才能关闭这个对话框. 下面是具体代码: AlertDialog.Builder builder = new Builder(this);  builder.setMessage(msg);  builder

Android4.0中Alertdialog对话框点击边缘外部消失问题解决

在开发的时候遇到一个问题,就是一触摸对话框边缘外部,对话框会自动消失.这个问题很纠结啊,查找了一下发现从Android 4.0开始,AlertDialog有了变化,就是在触摸对话框边缘外部,对话框会自动消失,查了源码,找到解决办法: 研究其父类时候发现,可以设置这么一条属性,在AlertDialog.Builder.create()之后才能调用这两个方法 方法一: setCanceledOnTouchOutside(false);调用这个方法时,按对话框以外的地方不起作用.按返回键还起作用 方法

Android中的对话框AlertDialog使用技巧合集-转载

Android中的对话框AlertDialog使用技巧合集 文章来自:http://blog.csdn.net/blue6626/article/details/6641105 今天我用自己写的一个Demo 和大家详细介绍一个Android中的对话框的使用技巧. 1.确定取消对话框 对话框中有2个按钮   通过调用 setPositiveButton 方法 和 setNegativeButton 方法 可以设置按钮的显示内容以及按钮的监听事件. 我们使用AlerDialog 创建对话框 view

Android基础入门教程——2.5.3 AlertDialog(对话框)详解

Android基础入门教程--2.5.3 AlertDialog(对话框)详解 标签(空格分隔): Android基础入门教程 本节引言: 本节继续给大家带来是显示提示信息的第三个控件AlertDialog(对话框),同时它也是其他 Dialog的的父类!比如ProgressDialog,TimePickerDialog等,而AlertDialog的父类是:Dialog! 另外,不像前面学习的Toast和Notification,AlertDialog并不能直接new出来,如果你打开 Alert