android Dialog 各种Dialog 三个选项的、进度条的、单选的、多选的、自定义的对话框

 文字就不说了,直接上代码。

1.三个选项Dialog.

效果图如下:

 

 

 /**
     * 三个选项的Dialog
     */
    private void threeDialog(){
    	AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
    	builder.setIcon(R.drawable.ic_launcher);
    	builder.setTitle("带进度条的Dialog");
    	builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				Toast.makeText(mContext, "确定", Toast.LENGTH_SHORT).show();
			}
		});
    	builder.setNeutralButton("中间", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				Toast.makeText(mContext, "中间", Toast.LENGTH_SHORT).show();
			}
		});
    	builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				Toast.makeText(mContext, "取消", Toast.LENGTH_SHORT).show();
			}
		});
    	builder.create().show();
    }


二、进度条Dialog。

代码:

 /**
     * 进度条Dialog
     */
    private void progressDialog(){
    	mProgress = new ProgressDialog(mContext);
    	mProgress.setIcon(R.drawable.ic_launcher);
    	mProgress.setTitle("带进度条的Dialog");
    	mProgress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    	mProgress.setButton("确定", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				Toast.makeText(mContext, "确定", Toast.LENGTH_SHORT).show();
			}
		});
    	mProgress.setButton2("取消", new DialogInterface.OnClickListener() {
    		
    		@Override
    		public void onClick(DialogInterface dialog, int which) {
    			// TODO Auto-generated method stub
    			Toast.makeText(mContext, "取消", Toast.LENGTH_SHORT).show();
    		}
    	});

    	mProgress.show();
    	new Thread(new Runnable() {
			int progress = 0;
			@Override
			public void run() {
				// TODO Auto-generated method stub
				while (progress <= 100) {
					mProgress.setProgress(progress);
					try {
						Thread.sleep(100);
					} catch (InterruptedException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					progress++;
				}
			}
		}).start();
    }


三、单选Dialog

 /**
     * 单选Dialog
     */
    private void simpleDialog(){
    	
    	singleSelectedId = -1;
    	AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
    	builder.setIcon(R.drawable.ic_launcher);
    	builder.setTitle("单选Dialog");
    	builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				singleSelectedId = which;
				Toast.makeText(mContext, "你选择的ID为:"+which, Toast.LENGTH_SHORT).show();
			}
		});
    	builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				if (singleSelectedId >= 0) {
					Toast.makeText(mContext, "你选择的ID为:"+singleSelectedId, Toast.LENGTH_SHORT).show();
				} else {
					singleSelectedId = 0;
					// 业务逻辑
				}
			}
		});
    	builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				
			}
		});
    	builder.create().show();
    }


四、多选复选Dialog

 /**
     * 复选Dialog
     */
    private void chooseDialog(){
    	
    	boolean[] selected = new boolean[items.length];
    	for (int i = 0; i < selected.length; i++) {
			selected[i] = false;
		}
    	AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
    	builder.setIcon(R.drawable.ic_launcher);
    	builder.setTitle("复选Dialog");
    	builder.setMultiChoiceItems(items, selected, new DialogInterface.OnMultiChoiceClickListener() {
    		
			@Override
			public void onClick(DialogInterface dialog, int which, boolean isChecked) {
				// TODO Auto-generated method stub
				if (isChecked) {
					list.add(which);
				} else {
					list.remove(which);
				}
			}
		});
    	builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
			String str = "你选择了:";
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				for (int i = 0; i < list.size(); i++) {
					str += " "+items[list.get(i)];
				}
				Toast.makeText(mContext, str, Toast.LENGTH_LONG).show();
			}
		});
    	builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				
			}
		});
    	builder.create().show();
    }


五、自定义Dialog

 

 /**
     * 自定义Dialog
     */
    EditText username;
    EditText password;
    private void customDialog(){
    	
    	AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
    	
    	LayoutInflater flater = LayoutInflater.from(mContext);
    	final View view = flater.inflate(R.layout.login, null);
    	
    	builder.setIcon(R.drawable.ic_launcher);
    	builder.setTitle("自定义Dialog");
    	builder.setView(view);
    	builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				username = (EditText) view.findViewById(R.id.username);
				password = (EditText) view.findViewById(R.id.pwd);
				Toast.makeText(mContext, ""+username.getText()+password.getText(), Toast.LENGTH_LONG).show();
			}
		});
    	builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				
			}
		});
    	builder.create().show();
    }


 

整体代码如下:

HelloDialogActivity.java:

package com.covics.zfh;

import java.util.ArrayList;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.text.style.BulletSpan;
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;

public class HelloDialogActivity extends Activity implements OnClickListener {
	
	private Button btnThree;
	private Button btnProgress;
	private Button btnSingle;
	private Button btnChoices;
	private Button btnCustom;
	private Context mContext;
	private ProgressDialog mProgress;
	private int singleSelectedId; // 单选ID
	private String[] items = {"item0", "item1", "item2", "item3", "item4", "item5"};
	private ArrayList<Integer> list;
	
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mContext = HelloDialogActivity.this;
        prepare();
       
    }
    private void prepare(){
    	btnThree = (Button)findViewById(R.id.btn_three);
    	btnProgress = (Button)findViewById(R.id.btn_progress);
    	btnSingle = (Button)findViewById(R.id.btn_dan);
    	btnChoices = (Button)findViewById(R.id.btn_mus);
    	btnCustom = (Button)findViewById(R.id.btn_custom);
    	btnThree.setOnClickListener(this);
    	btnProgress.setOnClickListener(this);
    	btnSingle.setOnClickListener(this);
    	btnChoices.setOnClickListener(this);
    	btnCustom.setOnClickListener(this);
    }
    /**
     * 三个选项的Dialog
     */
    private void threeDialog(){
    	AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
    	builder.setIcon(R.drawable.ic_launcher);
    	builder.setTitle("带进度条的Dialog");
    	builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				Toast.makeText(mContext, "确定", Toast.LENGTH_SHORT).show();
			}
		});
    	builder.setNeutralButton("中间", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				Toast.makeText(mContext, "中间", Toast.LENGTH_SHORT).show();
			}
		});
    	builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				Toast.makeText(mContext, "取消", Toast.LENGTH_SHORT).show();
			}
		});
    	builder.create().show();
    }
    /**
     * 进度条Dialog
     */
    private void progressDialog(){
    	mProgress = new ProgressDialog(mContext);
    	mProgress.setIcon(R.drawable.ic_launcher);
    	mProgress.setTitle("带进度条的Dialog");
    	mProgress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    	mProgress.setButton("确定", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				Toast.makeText(mContext, "确定", Toast.LENGTH_SHORT).show();
			}
		});
    	mProgress.setButton2("取消", new DialogInterface.OnClickListener() {
    		
    		@Override
    		public void onClick(DialogInterface dialog, int which) {
    			// TODO Auto-generated method stub
    			Toast.makeText(mContext, "取消", Toast.LENGTH_SHORT).show();
    		}
    	});

    	mProgress.show();
    	new Thread(new Runnable() {
			int progress = 0;
			@Override
			public void run() {
				// TODO Auto-generated method stub
				while (progress <= 100) {
					mProgress.setProgress(progress);
					try {
						Thread.sleep(100);
					} catch (InterruptedException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					progress++;
				}
			}
		}).start();
    }
    /**
     * 单选Dialog
     */
    private void simpleDialog(){
    	
    	singleSelectedId = -1;
    	AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
    	builder.setIcon(R.drawable.ic_launcher);
    	builder.setTitle("单选Dialog");
    	builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				singleSelectedId = which;
				Toast.makeText(mContext, "你选择的ID为:"+which, Toast.LENGTH_SHORT).show();
			}
		});
    	builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				if (singleSelectedId >= 0) {
					Toast.makeText(mContext, "你选择的ID为:"+singleSelectedId, Toast.LENGTH_SHORT).show();
				} else {
					singleSelectedId = 0;
					// 业务逻辑
				}
			}
		});
    	builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				
			}
		});
    	builder.create().show();
    }
    /**
     * 复选Dialog
     */
    private void chooseDialog(){
    	
    	boolean[] selected = new boolean[items.length];
    	for (int i = 0; i < selected.length; i++) {
			selected[i] = false;
		}
    	AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
    	builder.setIcon(R.drawable.ic_launcher);
    	builder.setTitle("复选Dialog");
    	builder.setMultiChoiceItems(items, selected, new DialogInterface.OnMultiChoiceClickListener() {
    		
			@Override
			public void onClick(DialogInterface dialog, int which, boolean isChecked) {
				// TODO Auto-generated method stub
				if (isChecked) {
					list.add(which);
				} else {
					list.remove(which);
				}
			}
		});
    	builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
			String str = "你选择了:";
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				for (int i = 0; i < list.size(); i++) {
					str += " "+items[list.get(i)];
				}
				Toast.makeText(mContext, str, Toast.LENGTH_LONG).show();
			}
		});
    	builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				
			}
		});
    	builder.create().show();
    }
    /**
     * 自定义Dialog
     */
    EditText username;
    EditText password;
    private void customDialog(){
    	
    	AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
    	
    	LayoutInflater flater = LayoutInflater.from(mContext);
    	final View view = flater.inflate(R.layout.login, null);
    	
    	builder.setIcon(R.drawable.ic_launcher);
    	builder.setTitle("自定义Dialog");
    	builder.setView(view);
    	builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				username = (EditText) view.findViewById(R.id.username);
				password = (EditText) view.findViewById(R.id.pwd);
				Toast.makeText(mContext, ""+username.getText()+password.getText(), Toast.LENGTH_LONG).show();
			}
		});
    	builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				
			}
		});
    	builder.create().show();
    }
	@Override
	public void onClick(View v) {
		int id = v.getId();
		switch (id) {
		case R.id.btn_three : {
			 threeDialog();
			 break;
		}
		case R.id.btn_progress : {
			progressDialog();
			break;
		}
		case R.id.btn_dan: {
			simpleDialog();
			break;
		}
		case R.id.btn_mus : {
	    	list = new ArrayList<Integer>();
			chooseDialog();
			break;
		}
		case R.id.btn_custom : {
			customDialog();
			break;
		}
		default :
			break;
		}
		
	}
}


layout中文件:

main.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" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Dialog集合" />
	<Button 
	    android:id="@+id/btn_three"
	    android:layout_width="fill_parent"
	    android:layout_height="wrap_content"
	    android:text="三个选项的Dialog"
	    />
	<Button 
	    android:id="@+id/btn_progress"
	    android:layout_width="fill_parent"
	    android:layout_height="wrap_content"
	    android:text="进度条Dialog"
	    />
	<Button 
	    android:id="@+id/btn_dan"
	    android:layout_width="fill_parent"
	    android:layout_height="wrap_content"
	    android:text="单选Dialog"
	    />
	<Button 
	    android:id="@+id/btn_mus"
	    android:layout_width="fill_parent"
	    android:layout_height="wrap_content"
	    android:text="多选Dialog"
	    />
	<Button 
	    android:id="@+id/btn_custom"
	    android:layout_width="fill_parent"
	    android:layout_height="wrap_content"
	    android:text="自定义Dialog"
	    />
</LinearLayout>


login.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" >
	
    <LinearLayout 
        android:id="@+id/user_layout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        >
        <TextView 
            android:id="@+id/text_user"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="姓名:"
            />
        <EditText 
            android:id="@+id/username"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:saveEnabled="true"
            android:hint="姓名"
            />
    </LinearLayout>
	
    <LinearLayout 
        android:id="@+id/pwd_layout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        >
        <TextView 
            android:id="@+id/text_pwd"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="密码:"
            />
        <EditText 
            android:id="@+id/pwd"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:inputType="textPassword"
            android:saveEnabled="true"
            android:hint="密码"
            />
    </LinearLayout>
    
</LinearLayout>


祝大家学习Android愉快!

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是使用Android对话框技术创建不同类型对话框的示例代码: ## 普通对话框 ```java AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("普通对话框"); builder.setMessage("这是一个普通对话框示例"); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 点击确定按钮后的操作 } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 点击取消按钮后的操作 } }); AlertDialog dialog = builder.create(); dialog.show(); ``` ## 单选对话框 ```java final String[] items = {"选项1", "选项2", "选项3", "选项4"}; int checkedItem = 0; // 默认中第一个 AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("单选对话框"); builder.setSingleChoiceItems(items, checkedItem, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 点击选项后的操作 } }); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 点击确定按钮后的操作 } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 点击取消按钮后的操作 } }); AlertDialog dialog = builder.create(); dialog.show(); ``` ## 多对话框 ```java final String[] items = {"选项1", "选项2", "选项3", "选项4"}; boolean[] checkedItems = {false, false, false, false}; // 默认全部未中 AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("多对话框"); builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { // 点击选项后的操作 } }); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 点击确定按钮后的操作 } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 点击取消按钮后的操作 } }); AlertDialog dialog = builder.create(); dialog.show(); ``` ## 进度对话框 ```java ProgressDialog progressDialog = new ProgressDialog(this); progressDialog.setTitle("进度对话框"); progressDialog.setMessage("正在加载,请稍后..."); progressDialog.setCancelable(false); // 设置不可取消 progressDialog.show(); ``` ## 消息对话框 ```java Toast.makeText(this, "这是一个消息对话框示例", Toast.LENGTH_SHORT).show(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值