`

Android各种对话框的使用

 
阅读更多

1 普通对话框(喜欢,不喜欢,一般)

2 输入“文本”后确定或取消

3 对话框退出功能,确定是否退出

4 带有单选按钮的弹出框使用 

5 以列表形式,显示单选列表 

6 以复选框的形式,展示的对话框 

 

一、调用各种对话框的按钮xml

 

<?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" >

    <Button
        android:id="@+id/Button01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="投票选择" >
    </Button>

    <Button
        android:id="@+id/Button02"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="输入确定" >
    </Button>

    <Button
        android:id="@+id/Button03"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="确定退出" >
    </Button>

    <Button
        android:id="@+id/Button04"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="单选按钮组" >
    </Button>

    <Button
        android:id="@+id/Button05"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="单选列表对话框" >
    </Button>
    <Button
        android:id="@+id/Button06"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="复选列表对话框" >
    </Button>
    
    
</LinearLayout>

 

二、Activity的代码 

 

package com.example.fragmentdemo1;  
  
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
  
//对话框测试  
//参考  http://blog.csdn.net/andie_guo/article/details/14145135
public class DialogActivity extends Activity {  
    Button btnShowDialog;  
    Button btnShowDialog_Layout;  
    Button quitBtn;
    Button singleChooseBtn;
    Button singleChoseListBtn;
    Button checkboxChoseListBtn;
    
    EditText editText;
    
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.dialog);  
        
        //定义按钮  
        btnShowDialog=(Button)this.findViewById(R.id.Button01);  
        btnShowDialog.setOnClickListener(new ClickEvent());  
        
        btnShowDialog_Layout=(Button)this.findViewById(R.id.Button02);  
        btnShowDialog_Layout.setOnClickListener(new ClickEvent());  
        
        quitBtn=(Button)this.findViewById(R.id.Button03);  
        quitBtn.setOnClickListener(new ClickEvent());  

        singleChooseBtn=(Button)this.findViewById(R.id.Button04);  
        singleChooseBtn.setOnClickListener(new ClickEvent());  

        singleChoseListBtn=(Button)this.findViewById(R.id.Button05);  
        singleChoseListBtn.setOnClickListener(new ClickEvent());  

        checkboxChoseListBtn=(Button)this.findViewById(R.id.Button06);  
        checkboxChoseListBtn.setOnClickListener(new ClickEvent()); 
        
    }  
      
      
    //统一处理按键事件  
    class ClickEvent implements OnClickListener{
        @Override  
        public void onClick(View v) {  
            if(v==btnShowDialog)  
                showDialog(DialogActivity.this);  
                  
            else if(v==btnShowDialog_Layout)  
                showDialog_Layout(DialogActivity.this);  
            else if(v==quitBtn){
            	showDialog_quit(DialogActivity.this);  
            }else if( v==singleChooseBtn){ 
            	showDialog_danxuan(DialogActivity.this);
            }else if(v==singleChoseListBtn ){
            	show_dialog_list(DialogActivity.this);
            }else if(v==checkboxChoseListBtn){
            	show_dialog_checkbox(DialogActivity.this);
            }
        }  
  
    }  
    //显示基本的AlertDialog  
    private void showDialog(Context context) {
        AlertDialog.Builder builder = new AlertDialog.Builder(context);  
        builder.setIcon(R.drawable.title);  
        builder.setTitle("喜好调查");  
        builder.setMessage("您喜欢玩植物大战僵尸么?");  
        builder.setPositiveButton("喜欢",  
                new DialogInterface.OnClickListener() {  
                    public void onClick(DialogInterface dialog, int whichButton) {  
                        setTitle("点击了对话框上的Button1");  
                        Toast.makeText(getApplicationContext(), "点击了喜欢",
                        	     Toast.LENGTH_SHORT).show();
                    }  
                });  
        builder.setNeutralButton("一般",  
                new DialogInterface.OnClickListener() {  
                    public void onClick(DialogInterface dialog, int whichButton) {  
                        setTitle("点击了对话框上的Button2");  
                        Toast.makeText(getApplicationContext(), "点击了对话框上一般",
                       	     Toast.LENGTH_SHORT).show();
                    }  
                });  
        builder.setNegativeButton("不喜欢",  
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {  
                        setTitle("点击了对话框上的Button3");  
                        Toast.makeText(getApplicationContext(), "您点击了不喜欢",
                          	     Toast.LENGTH_SHORT).show();
                    }  
                });  
        builder.show();  
    }  
  
  
    //显示基于Layout的AlertDialog ,有输入框的弹出框  
    private void showDialog_Layout(Context context) { 
    	
        LayoutInflater inflater = LayoutInflater.from(this);  
        final View textEntryView = inflater.inflate(  
                R.layout.alertdialoglayout, null);  
        
        final EditText edtInput=(EditText)textEntryView.findViewById(R.id.edtInput);  
        final AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setCancelable(false);  
        builder.setIcon(R.drawable.title );  
        builder.setTitle("Title");  
        //这个用  xml布局  或者直接   new对象   都行 
//        builder.setView(textEntryView);  
        
        editText = new EditText(context);
     
        builder.setView(editText) ; 
        builder.setPositiveButton("确认",  
                new DialogInterface.OnClickListener() {  
                    public void onClick(DialogInterface dialog, int whichButton) {  
                        setTitle(edtInput.getText());  
                         
                        Toast.makeText(getApplicationContext(), "点击了对话框上取消: "+editText.getText(),
                         	     Toast.LENGTH_SHORT).show();
                    }  
                });  
        builder.setNegativeButton("取消",  
                new DialogInterface.OnClickListener() {  
                    public void onClick(DialogInterface dialog, int whichButton) {  
                        setTitle("");  
                        Toast.makeText(getApplicationContext(), "点击了对话框上取消",
                         	     Toast.LENGTH_SHORT).show();
                    }  
                });  
        builder.show();  
    }
    //是否退出对话框的测试 
    private void showDialog_quit(Context context) { 
    	AlertDialog.Builder builder = new Builder(context);
    	builder.setMessage("妖精,确定逃跑么");
    	builder.setPositiveButton("确定", new AlertDialog.OnClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which) {
				 dialog.dismiss();
				 //结束当前Activity的生命周期并释放资源
				 DialogActivity.this.finish();
			}
 
		});
    	
    	builder.setNegativeButton("取消",  new AlertDialog.OnClickListener(){
			@Override
			public void onClick(DialogInterface dialog, int which) {
				dialog.dismiss();
			}
    	});
    	builder.create().show();
    }
    
    //单选按钮对话框 , 数据保存在监听器对象中  
    private void showDialog_danxuan(Context context) { 
    	//单选对话框监听器
    	final SingleChoiceOnClickListener singleChoiceOnClickListener = new SingleChoiceOnClickListener();
    	
    	AlertDialog.Builder builder = new AlertDialog.Builder(context);
    	builder.setTitle("单选对话框");
    	builder.setIcon(R.drawable.title);
    	//R.array.hobby 也可以用下面的 数组代替
    	//final String[] items = {"java", ".net", "php"}; 
    	//1 数组数据  2 第几个被选中  3 点击的监听器 
    	builder.setSingleChoiceItems( R.array.hobby, 0,   singleChoiceOnClickListener);
    	
    	 //添加一个确定按钮
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener(){
        	
            public void onClick(DialogInterface dialog, int which) {
                
            	String[] hoddy=getResources().getStringArray(R.array.hobby);
                Toast.makeText(getApplicationContext(), "您选择了: "+hoddy[singleChoiceOnClickListener.getWhich()],
                  	     Toast.LENGTH_SHORT).show();  
                dialog.dismiss();
            }
        });
    	builder.create().show();
    }
    //单选的监听器
    private class SingleChoiceOnClickListener implements DialogInterface.OnClickListener {  
        private int which = 0;  
        @Override  
        public void onClick(DialogInterface dialogInterface, int which) {  
        	   Toast.makeText(getApplicationContext(), "您选择了1111: "+which,
               	     Toast.LENGTH_SHORT).show();  
            this.which = which;  
        }
        
        public int getWhich() {  
            return which;  
        }  
    }  
    
    //显示列表对话框
    private void show_dialog_list(Context context){
    	final String[] items = new String[]{"北京","上海","深圳"};
    	AlertDialog.Builder builder = new AlertDialog.Builder(context);
    	builder.setTitle("列表对话框");
    	builder.setItems(items,  new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which) {
				 Toast.makeText(DialogActivity.this, "您选中了"+items[which], Toast.LENGTH_SHORT ).show();
				
			}
		});
    	builder.create().show();
    }
    
    //显示带有复选框的 对话框 
    private void show_dialog_checkbox(Context context){
    	final String[] items = new String[]{"北京","上海","深圳"};
    	final boolean[] selected = new boolean[]{true,false,true};  
    	
    	AlertDialog.Builder builder = new AlertDialog.Builder(context);
    	builder.setTitle("复选框 对话框");
    	builder.setMultiChoiceItems(items, selected, new DialogInterface.OnMultiChoiceClickListener() {

			@Override
			public void onClick(DialogInterface dialog, int which,
					boolean isChecked) {
				selected[which]=isChecked;
			}
		 
		});
    	builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which) {
			      StringBuffer str = new StringBuffer("您选中了:");  
		          for(int i=0;i<selected.length;i++){  
		            if(selected[i]){  
		                str.append(items[i]+",");  
		            } 
		         }  
		        str.deleteCharAt(str.length()-1);  
		        Toast.makeText(DialogActivity.this, str, Toast.LENGTH_SHORT).show(); 
			}  
    		
    	});
    	builder.create().show();
    }  
    
}  

 

 

三、array.xml的数据列表

 

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string-array name="hobby">        
     <item>游泳</item>            
     <item>打篮球</item>            
     <item>登山</item>        
  </string-array>
</resources>

 

 

 

 

 

 

分享到:
评论

相关推荐

    Android 简单对话框,列表对话框示例

    本示例主要关注`Android`中的几种基本对话框类型:普通AlertDialog、列表对话框(ListDialog)、进度对话框(ProgressDialog)以及自定义对话框,通过实例来阐述如何在代码中实现它们。 首先,我们来看`AlertDialog...

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

    以上是"Android常用对话框源码--对话框大全"中的主要知识点,通过学习和实践这些,开发者可以熟练掌握Android应用中对话框的使用,提高用户体验。在实际开发中,可以根据需求灵活组合和定制,创造出符合应用特性的...

    android 打开文本对话框

    在Android开发中,创建并显示一个文本对话框是常见的任务,尤其在用户需要输入或确认信息时。这个场景中提到的...理解并掌握这些知识点,开发者就能在Android应用中灵活地创建各种对话框,以满足用户的交互需求。

    Android 各种对话框整理

    这篇内容将深入探讨Android中的各种对话框类型及其用法。 一、Alert Dialog Alert Dialog是Android中最常见的对话框类型,通常用于显示警告信息、询问用户或提供选项。创建Alert Dialog的基本步骤包括: 1. 创建...

    Android Studio 常用对话框

    总之,掌握Android Studio中各种对话框的使用技巧是提升Android应用用户体验的关键。从简单到复杂,从普通对话框到带有多选功能的对话框,开发者需要灵活运用这些组件来满足不同场景的需求。同时,利用下载进度条...

    Android 进度条对话框Demo.zip

    这个"Android 进度条对话框Demo.zip"包含了一个示例项目,用于演示如何在Android应用中正确地使用进度条对话框。以下是对该Demo的详细解析: 首先,`1-120Q2203J50-L.png`可能是一个截图,展示了进度条对话框在实际...

    安卓Android源码——android 自定义对话框.rar

    本资源“安卓Android源码——android 自定义对话框.rar”显然包含了关于如何在Android平台上创建和定制对话框的源代码示例。通过这个压缩包,我们可以学习到如何摆脱系统默认样式,设计出更符合应用风格的对话框。 ...

    Android 普通对话框源码.zip

    通过分析这些内容,我们可以深入理解Android对话框的工作原理及其创建方法。 首先,Android中的对话框分为几种类型,包括普通对话框(AlertDialog)、进度对话框(ProgressDialog)、自定义对话框等。这里主要关注...

    Android 进度条对话框Demo.rar

    这个"Android 进度条对话框Demo"很可能是包含了一个示例项目,帮助开发者了解如何在Android应用中正确使用ProgressDialog。下面将详细讲解Android中进度条对话框的使用方法和相关知识点。 1. **ProgressDialog的...

    android各种对话框的组合使用

    本教程将深入探讨如何在Android应用中组合使用各种类型的对话框。 1. **基本对话框(AlertDialog)** 基本对话框是最常见的对话框类型,包括标题、消息文本、一个或多个按钮。可以通过`AlertDialog.Builder`来创建...

    android自定义对话框加动画

    在Android开发中,自定义对话框(Dialog)是一种常见的用户交互方式,用于向用户展示临时信息或进行简单操作。为了使对话框更具吸引力和用户体验,我们常常会为它添加动画效果。下面将详细介绍如何在Android中实现...

    Android应用源码之android 自定义对话框.zip

    通过分析这个源码,开发者可以深入理解Android对话框的工作原理,以及如何灵活地对其进行自定义。这对于开发具有个性化的用户体验的应用程序至关重要。同时,这个例子也可以作为学习Android UI设计和事件处理的一个...

    android自定义对话框、dialog

    在Android开发中,自定义对话框(Dialog)是创建用户界面时经常需要用到的一种组件。它能够提供一种非模态或模态的方式与用户交互,显示临时的信息或者进行一些简单的操作选择。本文将深入探讨如何在Android中实现...

    android 自定义对话框

    下面我们将深入探讨如何在Android中创建和使用自定义对话框。 1. **基础Dialog使用** Android SDK提供了`AlertDialog`类,可以快速创建一个基本的对话框。首先,你需要创建一个`AlertDialog.Builder`实例,然后...

    Delphi XE5 Android Dialogs 对话框

    本篇文章将深入探讨如何在Delphi XE5环境下创建和使用Android对话框。 首先,我们需要了解Delphi XE5的FireMonkey(FMX)框架。它是Delphi和C++Builder用于跨平台开发的统一界面层,支持Windows、Mac OS X、iOS以及...

    Android自定义对话框的使用

    这篇博客文章“Android自定义对话框的使用”深入探讨了如何在Android项目中创建和使用自定义对话框。 首先,我们了解自定义对话框的基本概念。对话框(Dialog)是Android中的一个窗口,它浮于应用程序之上,用于向...

    Android dialog对话框用法实例.rar

    这个“Android dialog对话框用法实例.rar”压缩包提供了一些示例代码,帮助开发者了解如何在Android应用中创建和使用Dialog。 首先,我们来详细探讨Android Dialog的基本概念。Dialog是Android UI设计中的一种非...

    Android 之 对话框总结

    本篇文章将对Android中的对话框进行深入的总结,包括基本概念、类型、使用方法以及自定义对话框的实现。 首先,Android提供了三种基本类型的对话框: 1. AlertDialog:这是最常用的对话框类型,通常包含标题、消息...

    android 具有选择功能的对话框dialog

    本文将深入探讨如何创建一个具有选择功能的对话框(Dialog),包括使用AlertDialog及其Builder类。 ### 1. AlertDialog简介 AlertDialog是Android SDK提供的一种内置对话框类型,它提供了多种样式和行为,可以用于...

    android AlertDialog对话框的类型集合

    这篇描述中提到的"android AlertDialog对话框的类型集合"是一个全面介绍和展示`AlertDialog`各种类型的资源,包含了丰富的示例代码,方便开发者直接运行和学习。 1. **普通对话框** 普通的`AlertDialog`是最基础的...

Global site tag (gtag.js) - Google Analytics