【原创】Android 对话框的使用

对话框即Dialog 、google的官方解释:A dialog is usually a small window that appears in front of the current Activity. The underlying Activity loses focus and the dialog accepts all user interaction.

翻译过来就是:对话框是当前Activity之上的小窗口,此时对话框接受用户的操作而Activity得不到用户的反馈。

一般而言我们不会直接实例化Dialog 我们用的是Dialog的子类 下面是一些Dialog的常用子类

对于对话框:大致分三步:创建对话框、显示对话框show()、dismiss()对话框

AlertDialog:

A dialog that can manage zero, one, two, or three buttons, and/or a list of selectable items that can include checkboxes or radio buttons. The AlertDialog is capable of constructing most dialog user interfaces and is the suggested dialog type

progressDialog:

A dialog that displays a progress wheel or progress bar. Because it‘s an extension of the AlertDialog, it also supports buttons.

DatePickerDialog:

A dialog that allows the user to select a date.

TimePickerDiaog:

A dialog that allows the user to select a time.

当然我们也会使用自己自定义的对话框。

各种对话框使用如下:

代码如下 点击相应按钮创建对话框

package leemo.DialogEp;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

/*
 * 练习操作Dialog的使用
 */
public class DialogEpActivity extends Activity {
	/** Called when the activity is first created. */

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		// setContentView(R.layout.main);
		Button btalert = (Button) findViewById(R.id.btalert);
		btalert.setText("点击创建Alert Dialog");
		btalert.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				createAlertDialog();
			}
		});
		Button btlist = (Button) findViewById(R.id.btlist);
		btlist.setText("点击创建ListDialog");
		btlist.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				createListDialog();
			}
		});
		Button btcb = (Button) findViewById(R.id.btcb);
		btcb.setText("点击创建带checkbox的对话框");
		btcb.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				createSingleCheckBoxDialog();
			}
		});
		Button btpb = (Button) findViewById(R.id.btpb);
		btpb.setText("点击创建进度条");
		btpb.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				createpbDialog();
			}
		});
		Button btcusdialog = (Button) findViewById(R.id.btcusdialog);
		btcusdialog.setText("点击创建自定义的对话框");
		btcusdialog.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				createcusDialog();
			}
		});
	}

	public void createAlertDialog() {
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setMessage("Are you sure want to exit")
				.setCancelable(false)
				.setPositiveButton("Yes",
						new DialogInterface.OnClickListener() {

							@Override
							public void onClick(DialogInterface dialog,
									int which) {
								// TODO Auto-generated method stub
								DialogEpActivity.this.finish();
							}
						})
				.setNegativeButton("No", new DialogInterface.OnClickListener() {

					@Override
					public void onClick(DialogInterface dialog, int which) {
						// TODO Auto-generated method stub
						dialog.cancel();
					}
				});
		builder.create().show();
	}

	public void createListDialog() {
		final CharSequence[] items = { "Red", "Blue", "Green" };
		AlertDialog.Builder builder = new AlertDialog.Builder(
				DialogEpActivity.this);
		builder.setTitle("Select A Color");
		builder.setItems(items, new DialogInterface.OnClickListener() {

			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				Toast.makeText(getApplication(), items[which],
						Toast.LENGTH_LONG).show();
			}
		});
		builder.create().show();
	}

	public void createSingleCheckBoxDialog() {
		final CharSequence[] items = { "Red", "Bule", "Green" };
		AlertDialog.Builder bd = new AlertDialog.Builder(DialogEpActivity.this);
		bd.setTitle("Select A Color");
		bd.setSingleChoiceItems(items, -1,
				new DialogInterface.OnClickListener() {

					@Override
					public void onClick(DialogInterface dialog, int which) {
						// TODO Auto-generated method stub
						dialog.dismiss();
						Toast.makeText(getApplicationContext(), items[which],
								Toast.LENGTH_SHORT).show();
					}
				});
		bd.create().show();
	}

	public void createpbDialog() {
		ProgressDialog dialog = ProgressDialog.show(DialogEpActivity.this,
				"loading", "loading please waiting");
		dialog.show();
	}

	public void createcusDialog() {
		Context mContext = DialogEpActivity.this;
		Dialog dialog = new Dialog(mContext);

		dialog.setContentView(R.layout.dialog);
		dialog.setTitle("Custom Dialog");

		TextView text = (TextView) dialog.findViewById(R.id.text);
		text.setText("Hello, this is a custom dialog!");
		ImageView image = (ImageView) dialog.findViewById(R.id.image);
		image.setImageResource(R.drawable.ic_launcher);
		Button btcs = (Button) dialog.findViewById(R.id.btcs);
		btcs.setText("点击创建Toast");
		btcs.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Toast.makeText(DialogEpActivity.this, "is okay",
						Toast.LENGTH_SHORT).show();
			}
		});
		dialog.show();
	}
}

创建自定义对话框时,要自己定义布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/layout_root"
              android:orientation="horizontal"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:padding="10dp"
              >
    <ImageView android:id="@+id/image"
               android:layout_width="wrap_content"
               android:layout_height="fill_parent"
               android:layout_marginRight="10dp"
               />
    <TextView android:id="@+id/text"
              android:layout_width="wrap_content"
              android:layout_height="fill_parent"
              android:textColor="#FFF"
              />
    <Button
        android:id="@+id/btcs"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
</LinearLayout>

效果如下图

时间: 2024-07-30 23:11:15

【原创】Android 对话框的使用的相关文章

Android对话框

这周过的实在是艰辛,自打这周二起我的本本就开始闹"罢工",最后还是重装系统了事. . .   只是可怜了我的那些被格了的软件(悲伤辣么大)!  往事不要再提,人生几度风雨... 简单的说一下(这不是介绍)Android对话框吧 1 // Android对话框 2 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);//创建对话框 3 builder.setTitle("警告"

Android对话框里面的输入值获取不到,空指针异常

写的一个Android对话框,点击按钮获取EditText里面的值,这里一直报空指针异常,研究了很长时间终于解决了. 异常如下: 我原来的代码: //更新对话框 private void updateDialog(final String id){ TableLayout updatemsg = (TableLayout)getLayoutInflater().inflate(R.layout.updatemsg, null); new AlertDialog.Builder(this) .se

Android 对话框使用大全

对话框种类 1.AlertDialog(Dialog)系统对话框. 2.Popupwindow弹出式对话框. 对话框区别 1.AlertDialog非阻塞式对话框:对话框的显示不影响后台任务的执行. 2.PopupWindow阻塞式对话框:对话框弹出后阻塞后台任务执行,直到对话框消失. 对话框示例 Dialog类的对话框 我们一般使用AlertDialog对话框,那么和Dialog有什么区别呢,其实AlertDialog只是继承了Dialog,实现了一些自己的方法而已.所以,AlertDialo

Android 对话框(Dialog) 及 自定义Dialog

Activities提供了一种方便管理的创建.保存.回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int), dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog). onCreateDialog(int):当你使用这个回调函数时,Android系统会有效的设置这个Acti

Android 对话框 Dialog

对话框 Dialog 什么是对话框 对话框是在当前的页面之上弹出的小窗口, 用于显示一些重要的提示信息, 提示用户的输入,确认信息, 或显示某种状态.如 :  显示进度条对话框, 退出提示. 对话框的特点: 1, 当前界面弹出的小窗口. 2, 用户要与它进行交互, 可以接收用户输入的信息, 也可以反馈信息给用户. 常用对话框: 1, 普通对话框 AlertDialog 2, 进度条对话框  ProgressDialog 3, 日期对话框    DatePickerDialog 4, 时间对话框

Android对话框自定义标题

Android自带的对话框标题不好看,如果我们需要给弹出的对话框设置一个自己定义的标题,可以使用AlertDialog.Builder的setCustomTitle()方法. 定义一个对话框标题的title.xml文件: <?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android

android对话框,checkBox,同一时候在同一个页面上保存数据

package com.example.selectonlyonle; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.View; import android.widget.Button; impo

转 Android 对话框(Dialog)大全 建立你自己的对话框

Activities提供了一种方便管理的创建.保存.回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int), dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog). onCreateDialog(int):当你使用这个回调函数时,Android系统会有效的设置这个 Act

Android对话框(四)PopupWindow

主布局 <RelativeLayout 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_parent" android:paddi