文档章节

常用对话框

维特的烦恼
 维特的烦恼
发布于 2014/02/19 01:26
字数 524
阅读 21
收藏 0
package com.pas.dialog;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.DialogInterface.OnClickListener;
import android.content.DialogInterface.OnMultiChoiceClickListener;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {

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

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

    private void makeToast(String info) {
	Toast.makeText(this, info, Toast.LENGTH_SHORT).show();
    }

    /**
     * 通知对话框
     */
    public void click1(View v) {
	// 1、获取构造器
	AlertDialog.Builder builder = new Builder(this);
	builder.setTitle("对话框标题");
	// 小图片
	builder.setIcon(R.drawable.ic_launcher);
	builder.setMessage("是否升级?");

	// 4.0开始 确定在右边 2.3在左边
	builder.setPositiveButton("确定", new OnClickListener() {

	    @Override
	    public void onClick(DialogInterface dialog, int which) {
		makeToast("确定被点击了");
	    }
	});
	builder.setNegativeButton("取消", new OnClickListener() {

	    @Override
	    public void onClick(DialogInterface dialog, int which) {
		// 什么都不做
	    }
	});
	// AlertDialog alertDialog = builder.create();
	// alertDialog.show();
	// 简写 其内部实现一致
	builder.show();
    }

    /**
     * 单选对话框
     * 
     * @param v
     */
    public void click2(View v) {
	AlertDialog.Builder builder = new Builder(this);
	builder.setTitle("单选对话框");
	final String[] items = new String[] { "条目1", "条目2", "条目3" };
	// 设置单选对话框API
	builder.setSingleChoiceItems(items, 1, new OnClickListener() {
	    @Override
	    public void onClick(DialogInterface dialog, int which) {
		makeToast(items[which] + "被点击");
		// 关闭对话框
		dialog.dismiss();
	    }
	});
	builder.setNegativeButton("取消", new OnClickListener() {

	    @Override
	    public void onClick(DialogInterface dialog, int which) {
		// 什么都不做
	    }
	});
	builder.show();
    }

    /**
     * 多选对话框
     * 
     * @param v
     */
    public void click3(View v) {
	AlertDialog.Builder builder = new Builder(this);
	builder.setTitle("多选对话框");
	final String[] items = new String[] { "条目1", "条目2", "条目3" };
	// 设置单选对话框API
	boolean[] checks = new boolean[] { true, false, false };
	builder.setMultiChoiceItems(items, checks,
		new OnMultiChoiceClickListener() {

		    @Override
		    public void onClick(DialogInterface dialog, int which,
			    boolean isChecked) {

			makeToast(items[which]
				+ (isChecked == true ? "被选中了" : "没有选中"));
		    }
		});
	builder.setNegativeButton("取消", new OnClickListener() {

	    @Override
	    public void onClick(DialogInterface dialog, int which) {
		// 什么都不做
	    }
	});
	builder.show();
    }

    /**
     * 进度对话框
     * 
     * @param v
     */
    public void click4(View v) {
	final ProgressDialog dialog = new ProgressDialog(this);
	dialog.setTitle("提醒");
	dialog.setMessage("正在加载……");

	dialog.setOnCancelListener(new OnCancelListener() {

	    @Override
	    public void onCancel(DialogInterface dialog) {
		makeToast("操作取消");
	    }
	});
	dialog.show();
	// 模拟操作取消
	new Thread() {
	    @Override
	    public void run() {
		try {
		    sleep(3000);
		    dialog.cancel();
		} catch (InterruptedException e) {
		    e.printStackTrace();
		}
		super.run();
	    }
	}.start();
    }

    /**
     * 进度条对话框
     * 
     * @param v
     */
    public void click5(View v) {
	final ProgressDialog dialog = new ProgressDialog(this);
	// 设置样式 水平还是圆的
	dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
	dialog.setMax(100);
	dialog.setIcon(R.drawable.ic_launcher);
	dialog.setTitle("提醒");
	dialog.setMessage("正在加载……");

	dialog.setOnCancelListener(new OnCancelListener() {

	    @Override
	    public void onCancel(DialogInterface dialog) {
		makeToast("操作取消");
	    }
	});
	dialog.show();
	// 模拟操作取消
	new Thread() {
	    @Override
	    public void run() {
		try {
		    for (int i = 0; i < dialog.getMax(); i++) {
			dialog.setProgress(i + 1);
			sleep(100);
		    }
		    dialog.dismiss();
		    super.run();
		} catch (InterruptedException e) {
		    e.printStackTrace();
		}
	    }
	}.start();
    }
}



© 著作权归作者所有

上一篇: 通知栏入门
下一篇: 使用APi拍照
维特的烦恼
粉丝 21
博文 97
码字总数 42329
作品 0
天津
私信 提问
《鸡啄米VS2010/MFC编程入门》系列技术文章整理收藏

《鸡啄米VS2010/MFC编程入门》系列技术文章整理收藏 1VS2010/MFC编程入门之前言 http://www.lai18.com/content/410337.html 2VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架) ...

开元中国2015
2015/06/27
267
0
VS2010/MFC编程入门教程之目录和总结(鸡啄米)

鸡啄米的这套VS2010/MFC编程入门教程到此就全部完成了,虽然有些内容还未涉及到,但帮助大家进行VS2010/MFC的入门学习业已足够。以此教程的知识为基础,学习VS2010/MFC较为深入的内容已非难事...

weixin_40647819
2018/05/23
0
0
跨平台布局组件--FMXUI

【简介】 FMXUI的开发忠旨是发掘FMX界面设计的优点,再整合进入Android界面设计的优点。使用过Java搞Android界面设计朋友看到后应该会有一定的熟悉感。 【类介绍】 TView 基本视图 TViewGro...

YangYxd
2016/12/30
330
0
android开发个人库/cocodialog

##CocoDialog CocoDialog是一个灵活的自定义对话框,支持对话框的弹出和退出动画,同时内置了多种常用的对话框,同时也支持样式的对话框。 ##Gradle dependencies{compile 'com.cocolove2.lib...

android开发个人库
2017/09/14
0
0
delphi消息对话框

delphi的消息对话框,类似VFP中的WAIT和MESSAGEBOXdelphi的消息对话框,类似VFP中的WAIT和MESSAGEBOX 1、最简单的是:showmessage() 它只有一个OK按钮,括号中填入希望提示的字符串。 例:sho...

技术小甜
2017/11/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

“旧城改造”的背后——银泰新零售阿里云解决方案(上)

相关免费课程《银泰新零售上云解决方案精讲》上线中 立足实战 讲透经典案例 助你快速理解新零售 第一节学习地址 第二节学习地址 传统线下商业体上云的案例 与其说银泰上云,倒不如说银泰“旧...

阿里云官方博客
7分钟前
0
0
记一次升级Oracle驱动引发的死锁

问题描述 近期项目需要从虚拟机环境迁移到容器环境,其中有一个项目在迁移到容器环境之后的两天之内出现了2次“死锁(deadlock)”的问题,部分关键日志如下: Found one Java-level deadlock:...

ksfzhaohui
9分钟前
2
0
MySQL 中的 information_schema 数据库

欢迎查看原文 - 本博客仅记录 https://blog.csdn.net/kikajack/article/details/80065753 -- 是否开启bin_log日志: off为关闭-- show variables like 'log_%'; show variables like '......

莫库什勒
17分钟前
0
0
Random在高并发下的缺陷以及JUC对其的优化

Random可以说是每个开发都知道,而且都用的很6的类,如果你说,你没有用过Random,也不知道Random是什么鬼,那么你也不会来到这个技术类型的社区,也看不到我的博客了。但并不是每个人都知道...

编程SHA
21分钟前
0
0
T5大牛带你解析:如何实现分布式技术

1.分布式事务 2. 分布式锁 Java 原生 API 虽然有并发锁,但并没有提供分布式锁的能力,所以针对分布式场景中的锁需要解决的方案。 分布式锁的解决方案大致有以下几种: 基于数据库实现 基于缓...

李红欧巴
33分钟前
32
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部