【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-31 18:52:19

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

Android中自定义对话框(Dialog)的实例代码_Android

1.修改系统默认的Dialog样式(风格.主题) 2.自定义Dialog布局文件 3.可以自己封装一个类,继承自Dialog或者直接使用Dialog类来实现,为了方便以后重复使用,建议自己封装一个Dialog类  第一步: 我们知道Android定义个控件或View的样式都是通过定义其style来实现的,查看Android框架中的主题文件,在源码中的路径:/frameworks/base/core/res/res/values/themes.xml,我们可以看到,Android为Dialog定义

Android中自定义对话框(Dialog)的实例代码

1.修改系统默认的Dialog样式(风格.主题) 2.自定义Dialog布局文件 3.可以自己封装一个类,继承自Dialog或者直接使用Dialog类来实现,为了方便以后重复使用,建议自己封装一个Dialog类 第一步: 我们知道Android定义个控件或View的样式都是通过定义其style来实现的,查看Android框架中的主题文件,在源码中的路径:/frameworks/base/core/res/res/values/themes.xml,我们可以看到,Android为Dialog定义了

Android常用的AlertDialog对话框及自定义对话框

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

Android编程中Handler原理及用法实例分析_Android

本文实例讲述了Android编程中Handler用法.分享给大家供大家参考,具体如下: 在Android的UI开发中,我们经常会使用Handler来控制主UI程序的界面变化.有关Handler的作用,我们总结为:与其他线程协同工作,接收其他线程的消息并通过接收到的消息更新主UI线程的内容. 我们假设在一个UI界面上面,有一个按钮,当点击这个按钮的时候,会进行网络连接,并把网络上的一个字符串拿下来显示到界面上的一个 TextView上面,这时就出现了一个问题,如果这个网络连接的延迟过大,可能是10

Android开发中RecyclerView控件使用实例教程

Android RecyclerView 是Android5.0推出来的,导入support-v7包即可使用. 个人体验来说,RecyclerView绝对是一款功能强大的控件. 首先总结下RecyclerView的特点: 1.支持不同方向,不同排版模式,实现多种展现数据的形式,涵盖了ListView,GridView,瀑布流等数据表现的形式 2.内部实现了回收机制,无需我们考虑View的复用情况 3.取消了onItemClick等点击事件,需要自己手动去写 -------------------

Android开发中应用程序分享功能实例_Android

本文实例讲述了Android开发中应用程序分享功能.分享给大家供大家参考,具体如下: Intent shareIntent = new Intent(); shareIntent.setAction(Intent.ACTION_SEND); //设置类型 shareIntent.setType("text/plain"); //设置分享的主题 shareIntent.putExtra("android.intent.extra.SUBJECT", "分享&

Android编程中selector背景选择器用法实例分析

本文实例讲述了Android编程中selector背景选择器用法.分享给大家供大家参考,具体如下: 在Android开发过程中,经常对某一View的背景在不同的状态下,设置不同的背景,增强用户体验.如果按钮,在按下时,背景变化,如果在代码中动态设置,相对比较麻烦.Android为我们提供了selector背景选择器可以非常方便的解决这一问题. Selector的结构描述: 1.android:state_pressed="true/false" true:表示按下状态下使用,false

Android开发中应用程序分享功能实例

本文实例讲述了Android开发中应用程序分享功能.分享给大家供大家参考,具体如下: Intent shareIntent = new Intent(); shareIntent.setAction(Intent.ACTION_SEND); //设置类型 shareIntent.setType("text/plain"); //设置分享的主题 shareIntent.putExtra("android.intent.extra.SUBJECT", "分享&

Android开发中的重力传感器用法实例详解

本文实例讲述了Android开发中的重力传感器用法.分享给大家供大家参考,具体如下: 重力传感器与方向传感器的开发步骤类似,只要理清了期中的x,y,z的值之后就可以根据他们的变化来进行编程了,首先来看一副图 假设当地的重力加速度值为g 当手机正面朝上的时候,z的值为q,反面朝上的时候,z的值为-g 当手机右侧面朝上的时候,x的值为g,右侧面朝上的时候,x的值为-g 当手机上侧面朝上的时候,y的值为g,右侧面朝上的时候,y的值为-g 了解了重力传感器中X,Y,Z的含义之后下面我们就开始学习如何使用