Android-AlertDialog各种对话框的用法

目标效果:

 
 
 
 

程序运行,显示图一的几个按钮,点击按钮分别显示图二到图六的对话框,点击对话框的某一项或者按钮,也会显示相应的吐司输出。

1.activity_main.xml页面存放五个按钮。

activity_main.xml页面:

<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"
    tools:context=".MainActivity" >
    <Button
        android:id="@+id/btnSure"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="确认对话框"/>
    <Button
        android:id="@+id/btnRadio"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="60dp"
        android:text="单选对话框"/>
    <Button
        android:id="@+id/btnCheck"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="110dp"
        android:text="多选对话框"/>
     <Button
        android:id="@+id/btnList"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="160dp"
        android:text="列表对话框"/>
      <Button
        android:id="@+id/btnMy"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="210dp"
        android:text="自定义对话框"/>

</RelativeLayout>

2.新建dialog.xml页面,作为最后一个自定义对话框的布局页面。

dialog.xml页面:

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <EditText
            android:id="@+id/edInput"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="2" >

            <requestFocus />
        </EditText>

        <Button
            android:id="@+id/btnOk"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="确定" />
    </LinearLayout>

    <ImageView
        android:id="@+id/ivPicture"
        android:layout_width="wrap_content"
        android:layout_height="280dp"
        android:src="@drawable/white" />

    <TextView
        android:id="@+id/textView1"
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />

</LinearLayout>

3.MainActivity.java页面处理对话框的弹出及点击事件。

MainActivity.java页面:

package com.example.alertdialog;

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

public class MainActivity extends Activity implements OnClickListener {

	private Button btnSure,btnRadio,btnCheck,btnList,btnMy;
	private String[] sexList={"男","女"};//单选列表
	private String[] likeList={"篮球","足球","打游戏","听音乐","看电影"};//多选列表
	private String[] itemList={"项目经理","策划","测试","美工","程序员"};//列表

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		getId();//获取控件id
		click();//按钮绑定点击事件
	}

	/*获取控件id*/
	private void getId() {
		btnSure = (Button) findViewById(R.id.btnSure);
		btnRadio=(Button) findViewById(R.id.btnRadio);
		btnCheck=(Button) findViewById(R.id.btnCheck);
		btnList=(Button) findViewById(R.id.btnList);
		btnMy=(Button) findViewById(R.id.btnMy);
	}

	/*按钮绑定点击事件*/
	private void click() {
		btnSure.setOnClickListener(this);
		btnRadio.setOnClickListener(this);
		btnCheck.setOnClickListener(this);
		btnList.setOnClickListener(this);
		btnMy.setOnClickListener(this);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	public void onClick(View view) {

		switch (view.getId()) {
		case R.id.btnSure:
			showDialog1();//确认对话框
			break;
		case R.id.btnRadio:
			showDialog2();//单选对话框
			break;
		case R.id.btnCheck:
			showDialog3();//多选对话框
			break;
		case R.id.btnList:
			showDialog4();
			break;
		case R.id.btnMy:
			showDialog5();
			break;
		}
	}

	/*确认对话框*/
	private void showDialog1() {
		AlertDialog.Builder builder=new AlertDialog.Builder(this);
		builder.setTitle("确认对话框");//设置标题
		builder.setIcon(R.drawable.ic_launcher);//设置图标
		builder.setMessage("确认对话框提示内容");//设置内容
		/*添加对话框中确定按钮和点击事件*/
		builder.setPositiveButton("确定",new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface arg0, int arg1) {
				Toast.makeText(MainActivity.this,"点击了确定按钮",Toast.LENGTH_SHORT).show();
			}
		});
		/*添加对话框中取消按钮和点击事件*/
		builder.setNegativeButton("取消",new DialogInterface.OnClickListener() {

			@Override
			public void onClick(DialogInterface arg0, int arg1) {
				Toast.makeText(MainActivity.this,"点击了取消按钮",Toast.LENGTH_SHORT).show();
			}
		});
		AlertDialog dialog=builder.create();//获取dialog
		dialog.show();//显示对话框
	}

	/*单选对话框*/
	private void showDialog2() {
		AlertDialog.Builder builder=new AlertDialog.Builder(this);
		builder.setTitle("性别");//设置标题
		builder.setIcon(R.drawable.ic_launcher);//设置图标
		/*参数一位单选列表文字,参数二为默认第几个选中(-1默认不选中),参数三是创建监听器*/
		builder.setSingleChoiceItems(sexList,-1,new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which) {
				String sex=sexList[which];
				Toast.makeText(MainActivity.this,"这个人性别为"+sex, Toast.LENGTH_SHORT).show();
			}
		});
		/*添加对话框中取消按钮点击事件*/
		builder.setNegativeButton("取消",new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which) {
				dialog.dismiss();//关闭对话框
			}
		});
		AlertDialog dialog=builder.create();//获取dialog
		dialog.show();//显示对话框
	}

	/*多选对话框*/
	private void showDialog3() {
		AlertDialog.Builder builder=new AlertDialog.Builder(this);
		builder.setTitle("爱好");//设置标题
		builder.setIcon(R.drawable.ic_launcher);//设置图标
		/*参数同单选对话框一样,另外第二个参数默认不选中为null,而不是-1*/
		builder.setMultiChoiceItems(likeList,null,new DialogInterface.OnMultiChoiceClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which, boolean isChecked) {
				if(isChecked){
					Toast.makeText(MainActivity.this,"我喜欢"+likeList[which],Toast.LENGTH_SHORT).show();
				}else{
					Toast.makeText(MainActivity.this,"我不喜欢"+likeList[which],Toast.LENGTH_SHORT).show();
				}
			}
		});
		/*添加对话框中取消按钮点击事件*/
		builder.setNegativeButton("取消",new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which) {
				dialog.dismiss();//关闭对话框
			}
		});
		AlertDialog dialog=builder.create();//获取dialog
		dialog.show();//显示对话框
	}

	/*列表对话框*/
	private void showDialog4() {
		AlertDialog.Builder builder=new AlertDialog.Builder(this);
		builder.setTitle("部门列表");//设置标题
		builder.setIcon(R.drawable.ic_launcher);//设置图标
		builder.setItems(itemList,new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(MainActivity.this,"我点击了"+itemList[which],Toast.LENGTH_SHORT).show();
			}
		});
		AlertDialog dialog=builder.create();//获取dialog
		dialog.show();//显示对话框
	}

	/*自定义对话框*/
	private void showDialog5() {
		LayoutInflater inflater=LayoutInflater.from(this);
		View view=inflater.inflate(R.layout.dialog,null);//获取自定义布局
		AlertDialog.Builder builder=new AlertDialog.Builder(this);
		builder.setTitle("自定义对话框");//设置标题
		builder.setIcon(R.drawable.ic_launcher);//设置图标
		builder.setView(view);//设置自定义样式布局到对话框
		AlertDialog dialog=builder.create();//获取dialog
		dialog.show();//显示对话框
	}

}

4.运行就出现目标效果了。

时间: 2024-11-09 04:00:12

Android-AlertDialog各种对话框的用法的相关文章

Android AlertDialog - 登录对话框

Step 1: 首先设置登录界面 - dialog_login.xml:用户名和密码输入框,以及清除按钮和登录按钮 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/t

【转】Android详细的对话框AlertDialog.Builder使用方法

Android详细的对话框AlertDialog.Builder使用方法 我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等方式,重写我们自己的对话框.当然,这也是不失为一个不错的解决方式,但是一般的情况却是这样,我们重写的对话框,也许只在一个特定的地方会用到,为了这一次的使用,而去创建一个新类,往往有点杀鸡用牛刀的感觉,甚至会对我们的程序增加不必

android中提示&amp;对话框----AlertDialog

AlertDialog(对话框) 一.对话框的基本使用流程 step1:创建AlertDialog.Buider; step2:调用setIcon()设置图标,setTitle()或者setCustomerTitle设置标题 step3:设置对话框的内容setMessage()还有其他方式: step4:setPosition/Negative/NaturalButton设置:确定.取消.中立 step5:调用create()方法创建这个对象,在调用show()方法将对话框显示出来 二.几种常用

Android中弹出对话框,AlertDialog关键代码

写在这里便于以后查看. Android中弹出对话框的关键代码: 1 btn01.setOnClickListener(new OnClickListener() { 2 3 @Override 4 public void onClick(View v) { 5 Toast.makeText(musicActivity.this, "tanchu", 100).show(); 6 //以下是弹出对话框的关键代码, 7 AlertDialog.Builder b = new AlertDi

Android UI系列--对话框(一)(AlertDialog,TimePickerDialog,DatePickerDialog,ProgressDialog)

一.Dialog介绍 dialog就是一个在屏幕上弹出一个可以让用户做出一个选择,或者输入额外的信息的对话框,一个对话框并不会沾满我们整个的屏幕,并且通常用于模型事件当中需要用户做出一个决定后才会继续执行. Dialog类是dialog对话框的基类,但是我们应该避免直接使用这个类来实例化一个dialog对话框,我们应当使用其子类来得到一个对话框. Dialog有很多的子类实现,所以我们要定义一个对话框,使用其子类来实例化一个即可,而不要直接使用Dialog这个父类来构造 java.lang.Ob

android 开发AlertDialog.builder对话框的实现

AndroidAPI提供了Dialog对话框控件,但google明确指出不建议开发者只是使用Dialog来创建对话框,而应该自定义对话框或者使用API中提供的Dialog的子类,如AlertDialog.接下来记录下AlertDialog的具体使用,供广大初学者学习,也供自己日后查阅. 首先在资源文件xml中写入一个按钮. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmln

Android中的对话框AlertDialog使用技巧合集-转载

Android中的对话框AlertDialog使用技巧合集 文章来自:http://blog.csdn.net/blue6626/article/details/6641105 今天我用自己写的一个Demo 和大家详细介绍一个Android中的对话框的使用技巧. 1.确定取消对话框 对话框中有2个按钮   通过调用 setPositiveButton 方法 和 setNegativeButton 方法 可以设置按钮的显示内容以及按钮的监听事件. 我们使用AlerDialog 创建对话框 view

Android界面编程——对话框控件(四)

Android界面编程--对话框控件 2.5对话框控件 对话框是提示用户作出决定或输入额外信息的小窗口.对话框不会填充屏幕,通常用于需要用户采取行动才能继续执行的模式事件.Android中常见跟对话框相关控件有Toast.AlertDialog.PopupWindow.ProgressDialog等 2.5.1 Toast Toast用于弹出一个简单文本信息为应用提供反馈,可以和当前活动保持可见和互动,在一定时间后自动消失.Toast有两种形式基本Toast和自定义Toast,效果如图2.5.1

Android 自学之对话框

Android为我们提供了丰富的对话框支持,提供了四种常用的对话框: AlertDialog:功能丰富.实际应用最广泛的对话框. ProgressDialog:进度对话框,该对话框只用于简单的进度条封装. DatePickerDialog:日期选择对话框,该对话框只对DatePicker包装. TimePickerDialog:时间选择对话框,该对话框只对TimePicker包装. 上面四种对话框中功能最强用法最灵活的就是AlertDialog,这里详细的介绍下AlertDialog. 一.使用

Android中各种Adapter的用法

1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的View(ListView,GridView)等地方都需要用到Adapter.如下图直观的表达了Data.Adapter.View三者的关系: Android中所有的Adapter一览: 由图可以看到在Android中与Adapter有关的所有接口.类的完整层级图.在我们使用过程中可以根据自己的需求实现接口或者继承类进行一定的扩展.比较常用的有 BaseAdapter,SimpleA