`
cyhcheng
  • 浏览: 60019 次
  • 性别: 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[] { "飞狐外传", "雪山飞狐", "连城诀", "天龙八部", "射雕英雄传", "白马啸西风", "鹿鼎记", "笑傲江湖", "书剑恩仇录", "神雕侠侣", "侠客行", "倚天屠龙记", "碧血剑", "鸳鸯刀", "越女剑" };
	}
}

 

 

分享到:
评论

相关推荐

    对话框的几种实现方式

    在Java中,`JFileChooser`用于文件选择,`JColorChooser`用于颜色选择,`JOptionPane`则提供了多种系统对话框选项。 四、自定义对话框(Custom Dialog Box) 自定义对话框允许开发者根据应用需求创建具有特定功能和...

    Qt基本对话框实现

    在Qt库中,标准对话框是用户界面设计中不可或缺的一部分,它们为用户提供了一种与应用程序交互的便捷方式。Qt提供了多种内置的对话框类,使得开发者可以轻松地创建各种常见类型的对话框,如文件选择、颜色选取、字体...

    WPF 自定义对话框 超级完美版

    在这个项目中,开发者可以找到一种方法来创建具有独特外观和行为的对话框,而不仅仅是依赖于系统默认的MessageBox。 首先,自定义对话框通常包括以下组件: 1. **对话框模板**:WPF允许通过XAML语言定义对话框的...

    VC++实现对话框编程

    对话框提供了一种集中的界面,用户可以在其中输入数据、选择选项或执行特定的操作。以下是对"VC++实现对话框编程"这个主题的详细说明。 **一、对话框基础** 对话框(Dialog Box)是Windows应用程序中的一种窗口,...

    一个封装好的ios风格的选择对话框

    本资源提供了一个封装好的Android组件,它实现了iOS风格的选择对话框,适用于那些希望在Android设备上引入iOS设计元素的开发者。这个组件的特色在于其模仿了iOS的UI设计,为Android用户带来一种熟悉而现代的交互体验...

    2中方法实现对话框

    例如,我们可以创建一个用于年龄选择的JSpinner,设置其最小值为0,最大值为100,步进值为1。 综上所述,关于“2种方法实现对话框”的主题,我们主要讨论了模态对话框和非模态对话框的概念、在不同编程环境中的实现...

    易语言多选对话框模块

    在易语言中,"多选对话框模块"是一个重要的用户界面元素,它允许用户在弹出的窗口中选择多个选项,类似于我们在日常使用电脑时常见的文件选择对话框。 多选对话框模块的核心功能是提供一个交互式的界面,让用户能够...

    qt退出对话框

    若用户点击“取消”,则调用`reject()`方法关闭对话框而不执行退出操作。 5. **事件处理** 除了点击按钮,还可以监听其他事件,例如在主窗口上按下关闭按钮(通常表现为右上角的“X”)。这时,可以重写`...

    对话框伸缩功能的实现

    这种功能常见于设置窗口或复杂的输入表单,用户可以根据需求选择查看或隐藏高级选项。 实现这一功能主要涉及以下几个步骤: 1. **设计UI布局**:使用灵活的布局管理器,如Java Swing中的GridBagLayout,Android的...

    Android常用对话框源码对话框大全

    - 显示对话框通常通过`show()`方法,关闭则调用`dismiss()`。对于`DialogFragment`,还可以使用`dismissAllowingStateLoss()`在特定情况下关闭。 10. **适配不同设备和屏幕尺寸** - 对话框的设计需要考虑到不同...

    VC基于对话框的属性页实现工程

    对话框是一种模态窗口,用户在完成特定任务或提供信息前不能关闭它。在VC++中,对话框通常由资源编辑器设计,包含各种控件如按钮、文本框、复选框等。而属性页则是对话框的一种特殊形式,它允许用户通过一个统一的...

    两种方式实现等待对话框

    通过WaitDialogDemo这个项目,我们可以深入学习和实践这两种方法,理解它们的工作原理,并根据项目需求灵活选择合适的方式实现等待对话框。在实际开发中,为了提高用户体验,可以考虑添加取消操作的监听,以及根据...

    delphi 实现延时自动关闭对话框.docx

    在Delphi编程中,有时我们需要实现一个功能,即在用户打开某个对话框后,如果在一段时间内没有任何操作,对话框会自动关闭。这个功能在一些警告或者确认信息的临时对话框中非常常见,可以提高用户体验并减少资源占用...

    Android 之 对话框总结

    在Android开发中,对话框(Dialog)是一种非常重要的组件,用于与用户进行交互,提供临时信息展示、选项选择等操作。本篇文章将对Android中的对话框进行深入的总结,包括基本概念、类型、使用方法以及自定义对话框的...

    vb调用颜色对话框

    在VB(Visual Basic)编程中,调用颜色对话框是一个常见的功能,允许用户从系统预设的颜色中选择所需的颜色,增强了应用程序的交互性。本文将详细介绍如何在VB中实现这一功能,并探讨其背后的原理和应用。 首先,VB...

    实现MFC对话框应用 基础控件

    在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC)库来实现一个基于对话框的应用程序,并且重点介绍如何操作和使用基本的对话框控件。MFC是微软为Windows应用程序开发提供的一种C++类库,它封装了...

    androdi AlertDialog实现各种类型的对话框

    - **单选列表**:使用`setSingleChoiceItems()`方法可以展示一个单选列表,通常用于让用户从多个选项中选择一个。 ```java String[] items = {"选项1", "选项2", "选项3"}; builder.setSingleChoiceItems(items, -1...

    mfc对话框程序退出弹出确认对话框

    当你想要在用户尝试关闭对话框时弹出一个确认对话框,以确保他们确实想要退出,你可以通过处理`ON_WM_CLOSE()`消息来实现这一功能。这个消息在用户尝试关闭窗口(例如点击窗口的关闭按钮)时被触发。 首先,我们...

    WheelView底部弹出滑动选择器(对话框实现)

    本教程将介绍如何利用`WheelView`结合`Dialog`来实现一个底部弹出的滑动选择器,该实现方式代码简洁,易于理解,可以直接应用到你的项目中。 首先,我们来了解`WheelView`。`WheelView`是Android中的一个可滚动视图...

    Dialog对话框之android 自定义对话框代码

    以下是对"Dialog对话框之android 自定义对话框代码"这一主题的详细说明。 首先,Android中的Dialog类是对话框的基础,它继承自AlertDialog.Builder。创建自定义对话框通常分为几个步骤: 1. **创建布局文件**: ...

Global site tag (gtag.js) - Google Analytics