对话框详解2

本文演示了如何创建一个悬浮对话框,即将activity以对话框的方式显示。

只要指定Activity的主题是dialog即可:

android:theme="@android:style/Theme.Dialog"

对于onTouchEvent方法:1、悬浮对话框(Activity) 单击屏幕上的任意地方都会触发

      2、对话框  要想使用对话框的onTouchEvent方法。则必须继承AlertDialog类

本例先进入的是一个悬浮对话框(Activity),单击显示日期后弹出对话框,由于该对话框实现了AlertDialog的onTouchEvent方法,所以单击任意位置,对话框都会消失。

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:text="这是一个悬浮对话框" />

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginTop="20dp"
        android:gravity="center"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/btnCurrentDate"
            android:layout_width="80dp"
            android:layout_height="wrap_content"
            android:text="当前日期" />

        <Button
            android:id="@+id/btnFinish"
            android:layout_width="80dp"
            android:layout_height="wrap_content"
            android:text="关闭" />
    </LinearLayout>

</LinearLayout>

弹出对话框实现onTouchEvent:

public class DateDialog extends AlertDialog
{

	public DateDialog(Context context)
	{
		super(context);
	}

	@Override
	public boolean onTouchEvent(MotionEvent event)
	{
		dismiss();
		return super.onTouchEvent(event);
	}

}

悬浮对话框风格的Activity:

public class Main extends Activity implements android.view.View.OnClickListener {
	private DateDialog dateDialog;

	public void onClick(View view) {
		switch (view.getId()) {
		case R.id.btnCurrentDate:
			SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
					"yyyy-MM-dd");

			dateDialog.setIcon(R.drawable.date);
			dateDialog.setTitle("当前日期:" + simpleDateFormat.format(new Date()));
			dateDialog.setButton("确定", new OnClickListener() {

				public void onClick(DialogInterface dialog, int which) {
					//

				}
			});
			dateDialog.setOnDismissListener(new OnDismissListener() {
				public void onDismiss(DialogInterface dialog) {
					new DateDialog.Builder(Main.this)
							.setMessage("您已经关闭的当前对话框.").create().show();
				}
			});
			dateDialog.show();
			break;

		case R.id.btnFinish:
			finish();
			break;
		}

	}

	@Override
	public boolean onTouchEvent(MotionEvent event) {
		finish();
		return true;
	}

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		Button btnCurrentDate = (Button) findViewById(R.id.btnCurrentDate);
		Button btnFinish = (Button) findViewById(R.id.btnFinish);
		btnCurrentDate.setOnClickListener(this);
		btnFinish.setOnClickListener(this);
		dateDialog = new DateDialog(this);

	}
}
时间: 2024-10-26 17:07:17

对话框详解2的相关文章

Android Dialog对话框详解_Android

废话不多说了,直接给大家贴代码了. 布局文件xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_paren

Android Dialog 对话框详解及示例代码_Android

Android Dialog 对话框 1.Dialog介绍 2.AlertDialog的基本使用 3.自定义对话框 Custom Dialog 一.Dialog介绍 Dialog也是Android中常用的用户界面元素,他同Menu一样也不是View的子类.让我们看一下它的继承关系: 这里要留意一下他的直接子类 AlertDialog,和间接子类 DatePickerDialog,ProgressDialog,TimePickerDialog,其中后三个我们在前面的章节已经讲过,今天我们把重点放在

Extjs Ext.MessageBox.confirm 确认对话框详解_extjs

Ext.MessageBox.confirm()详解 显示一个确认对话框,用来代替JavaScript标准的confirm()方法,具有两个按钮"是"和"否"如果为其提供一个回调函数,则该函数将在单击按钮后被调用(包括右上角的推出按钮),所单击按钮的id将被作为唯一的参数传递到回调函数中. 调用格式: confirm(String title,String msg,[function fn],[Object scope]) 参数说明: Ext.MessageBox.

对话框详解0

对话框是人机交互的重要组成部分,android中使用AlertDialog.Builder类来创建对话框,本文详解了各种对话框的创建方法: ps:本文采用activity托管的方式来创建对话框,即使用onCreateDialog方法来创建.当调用Activity类的showDialog方法时,系统会调用onCreateDialog方法来返回一个dialog,即showDialog将参数传进onCreateDialog方法.如果使用一般的创建方法,则和程序方法里面的做法相同. main.xml布局

javascript的对话框详解与参数_基础知识

对话框可以分为模式对话框和无模式对话框两种,两者区别是在对话框被关闭之前用户能否在同一应用程序的其他地方进行工作.举例说明:打开文件对话框便是典型的模式对话框,在你选择好要打开的文件按下确定后,或者取消打开文件操作后,才可以在同一应用程序进行其他操作.而常见的查找和替换对话框便是无模式对话框的典型,在该对话框打开的同时,我们还可以进行其他工作.模式对话框会始终保持焦点.除非关闭对话框,否则无法切换窗口. 无模式对话框不会始终保持焦点,但始终保持显示在最前端. 弹出网页窗口全攻略(html/hta

ExtJS Ext.MessageBox.alert()弹出对话框详解_extjs

复制代码 代码如下: Ext.onReady(function() { Ext.Msg.alert('提示', '逗号分隔参数列表'); //这种方式非常常见的 }); 效果图: 复制代码 代码如下: Ext.onReady(function() { //定义 JSON(配置对象) var config = { title:'提示', msg: 'JSON配置方式,简单吧' } Ext.Msg.show(config); }); 效果图: 上边我只是简单举例,好了看到了漂亮的界面了吧!接下来认识

Android AlertDialog对话框详解及实例

Android  AlertDialog 关系图如下: Android主要提供四种对话框: 1:AlertDialog:功能最丰富,实际应用最广的对话框. 2:ProgressDialog:进度条对话框 3:DatePickerDialog:日期选择器对话框 4:TimePickerDialog:时间选择器对话框 创建一个对话框的步骤: AlertDialog.Builder builder = new AlertDialog.Builder(this) // 1:设置对话框标题 .setTit

对话框详解1

本文演示了两种特殊对话框--ProcessDialog的使用方法: 主程序如下: public class Main extends Activity implements OnClickListener { private static final int MAX_PROGRESS = 100; private ProgressDialog progressDialog; private Handler progressHandler; private int progress; // 显示进

Android开发入门(一)详解活动 1.6 显示复杂对话框

除了"对话框"进度条,也可以创建一个显示"操作进度"的对话框,例如显示正在下载的状态. 1. 创建一个工程:Dialog. 2. main.xml中的代码. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" andro