`
cyhcheng
  • 浏览: 57933 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

实现不选择选项则不可以关闭的对话框之方法一

 
阅读更多

本方法中,当点击Positive Button时,如果没有选择选项,则会以Toast的方式给出提示。

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {
	private Button btnOpenDialog;
	private String[] books = null;
	private Activity activity;
	private int selectedBookIndex = -1;
	private AlertDialog alertDialog;
	private boolean allowCloseDialog = false;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		initBooks();
		setContentView(R.layout.activity_main);
		activity = this;
		btnOpenDialog = (Button) findViewById(R.id.btnOpenDialog);
		btnOpenDialog.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				alertDialog = new AlertDialog.Builder(activity).setTitle(R.string.hello_world).setSingleChoiceItems(books, selectedBookIndex, new DialogInterface.OnClickListener() {

					@Override
					public void onClick(DialogInterface dialog, int which) {
						selectedBookIndex = which;
						allowCloseDialog = true;
					}

				}).setPositiveButton("OK", new DialogInterface.OnClickListener() {
					
					@Override
					public void onClick(DialogInterface dialog, int which) {
					}
				}).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
					
					@Override
					public void onClick(DialogInterface dialog, int which) {
					}
				}).create();
				
				alertDialog.show();
				alertDialog.getButton(DialogInterface.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {

					@Override
					public void onClick(View v) {
						if (allowCloseDialog) {
							alertDialog.dismiss();
						} else {
							Toast.makeText(activity, "Please select one option first.", Toast.LENGTH_LONG).show();
						}
					}
				});

			}
		});
	}

	void initBooks() {
		books = new String[] { "飞狐外传", "雪山飞狐", "连城诀", "天龙八部", "射雕英雄传", "白马啸西风", "鹿鼎记", "笑傲江湖", "书剑恩仇录", "神雕侠侣", "侠客行", "倚天屠龙记", "碧血剑", "鸳鸯刀", "越女剑" };
	}
}

 

 

分享到:
评论

相关推荐

    JS+ACTIVEX实现网页选择本地目录路径对话框

    网页选择本地目录路径对话框,使用ACTIVEX对象遍历本地磁盘和目录,只需网页启用相关ACTIVEX的INTERNET选项,对本地浏览器的安全性要求不高,简单易用。网页选择本地目录路径对话框样例 1.打开主页面”select.html”...

    申请单管理系统

    点击查询后,可以根据所选条件进行联合查询,其中,申请单号、申请单类型为精确查询,申请单标题为模糊查询,“申请单状态”如果选择“待分配”,则只查询待分配的申请单,如果选择“已分配”则查询状态为待处理、...

    电脑高手必备 Windows系统35招实用技巧

    Windows XP”是解决诸如新添加的驱动程序与硬件不相符之类问题的一种方 法。用这种方式启动,Windows XP只恢复注册表项 HklmSystemCurrentControlSet下的信息。任何在其他注册表项中所做的更改 均保持不变。  ...

    多媒体教室

    提交完成之后教师机可以右击屏幕右下角的图标或班级模型的空白区,选择"察看提交文件夹",则教师可以察看学生所提交的文件。  3.7窗口显示模式 在全屏接收屏幕广播时,如果教师未锁定学生机键盘鼠标,学生就可以...

    excel操作技巧--方法介绍

    (1)选中要输入英文的列,单击“数据”菜单,选择“有效性...”命令,在弹出的“数据有效性”对话框中,选中“输入法模式”选项卡,在“模式”框中选择“关闭(英文模式)”命令,单击“确定”按钮。  (2)选中...

    奥鹏东北师范大学计算机应用基础在线作业2-0005满分作业参考.docx

    选项A是:希望有这种方式的学习 选项B是:不希望 正确选项:B 已知工作表"商品库"中单元格F5中的数据为工作表"月出库"中单元格D5与工作表"商品库"中单元格G5数据之和,若该单元格的引用为相对引用,则F5中的公式是...

    计算机应用基础选择题及答案.doc

    一、单项选择 .在 工作表中,日期型数据"年月日"的正确输入形式是( )。 ()12-21-2002 () (),, () .默认情况下,在 单元格中靠左对齐的数据为( )。 ()数值 ()文本 ()日期 ()时间 .在 ...

    Qt Creator 的安装和hello world 程序+其他程序的编写--不是一般的好

    我们按下按钮,会弹出一个对话框,无论如何关闭这个对话框,都会回到主窗口。 实现原理: 程序里我们先建立一个主工程,作为主界面,然后再建立一个对 话框类,将其加入工程中,然后在程序中调用自己新建的对话框类...

    硕士生,博士生论文排版技巧方法

    在插入或删除图、表、公式时编号的维护就成为一个大问题,比如若在第二章的第一张图(图2-1)前插入一张图,则原来的图2-1变为2-2,2-2变为2-3,…,更糟糕的是,文档中还有很多对这些编号的引用,比如“流程图...

    editplus 代码编辑器html c++ jsp css

    如果从行首匹配,可以用“^”来实现,不过 EditPlus 有另一个功能可以很简单的删除行首的字符串 a. 选择要操作的行 b. 编辑-格式-删除行注释 c. 在弹出对话框里面输入要清除的行首字符,确定 【4】正则表达式应用...

    您可能没有权限使用网络资源。请与这台服务器的管理员联系以查明您是否有访问权限。拒绝访问解决方法

    具体的修改方法如下:打开“我的电脑”中的“工具”,选择“文件夹属性”,调出“查看”标签,在“高级设置”部分滚动至最底部将“简单文件共享(推荐)”前面的选择取消,另外如果选项栏里还有“Mickey Mouse”项也将...

    MAPGIS地质制图工具

    1、如果先打开了Excel表,则会插入表中选择的数据到MapGis图形中;若事先未打开Excel,那么将会把选择的表(Sheet)中的所有数据(直到最后为空值行;有空数据行但下面仍有数据行,继续插入数据;有引用公式当做有数据...

    奥鹏作业计算机应用基础18秋在线作业2-0005.docx

    选项【B】:幻灯片配色方案 选项【C】:背景 选项【D】:应用设计模板 正确选项:A "幻灯片切换"对话框中不能设置的选项包括 选项【A】:效果 选项【B】:换页方式 选项【C】:声音 选项【D】:显示方式 正确选项:D 自动...

    网际畅游 MyIE 3.0 源代码

    不弹出脚本错误提示框:在浏览某些网页时会出现脚本错误,要避免这个问题可以在MyIE选项中选中“不弹出脚本错误对话框”. 本地文件浏览:在工具栏上选择文件按钮,会出现一个类似文件管理器的窗口,其中列出了你...

    vss如何使用(图解)

    如果你只需读取某一文档而并不需要编辑它,你可以执行取出(get)命令,将文档放入你的工作文件夹,再选择查看文档(view),来查看你的文档的最新版本。 1.2 VSS中的项目 项目(project)是指用户存储在VSS数据库中的...

    EditPlus V3.51 build 1036 中文版

    除此之外,在界面外观设计上 EditPlus 也有很多过人之处,我不能很好地将这种独特的属性描述出来,但我可以做一个比喻,如果把各种文本编辑器都看作一个美女的话,EditPlus 就属于那种苗条纤巧,落落大方的类型,...

    MicrosoftHTMLHelpWorkshopV1.3汉化版.rar

    chm 内容相符的文字(如果不指定,则软件默认为“帮助”):按[Project]项目选项中左边第三个按钮“新建/编辑窗口显示风格”,在弹出的窗口类型中随便输入一个名字如“12”,按“OK”后就会进入“窗口属性”定义...

    Editplus 3[1].0

    如果从行首匹配,可以用“^”来实现,不过 EditPlus 有另一个功能可以很简单的删除行首的字符串 a. 选择要操作的行 b. 编辑-格式-删除行注释 c. 在弹出对话框里面输入要清除的行首字符,确定 【4】正则表达式应用...

    excel的使用

    下面给出一个例子:选中一列,然后单击“格式”菜单中的“单元格”命令,在弹出的对话框中选择“数字”选项卡,在“分类”列表中选择“自定义”,然后在“类型”文本框中输入“"正数:"($#,##0.00);"负数:"($ #,##...

Global site tag (gtag.js) - Google Analytics