android Dialog 各种Dialog 三个选项的、进度条的、单选的、多选的、自定义的对话框
来源:互联网 发布:矩阵的秩的物理意义 编辑:程序博客网 时间:2024/06/08 20:14
文字就不说了,直接上代码。
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() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.makeText(mContext, "确定", Toast.LENGTH_SHORT).show();}}); builder.setNeutralButton("中间", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.makeText(mContext, "中间", Toast.LENGTH_SHORT).show();}}); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.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() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.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;@Overridepublic void run() {// TODO Auto-generated method stubwhile (progress <= 100) {mProgress.setProgress(progress);try {Thread.sleep(100);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.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() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubsingleSelectedId = which;Toast.makeText(mContext, "你选择的ID为:"+which, Toast.LENGTH_SHORT).show();}}); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubif (singleSelectedId >= 0) {Toast.makeText(mContext, "你选择的ID为:"+singleSelectedId, Toast.LENGTH_SHORT).show();} else {singleSelectedId = 0;// 业务逻辑}}}); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic 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() { @Overridepublic void onClick(DialogInterface dialog, int which, boolean isChecked) {// TODO Auto-generated method stubif (isChecked) {list.add(which);} else {list.remove(which);}}}); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {String str = "你选择了:";@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubfor (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() {@Overridepublic 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() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubusername = (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() {@Overridepublic 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; // 单选IDprivate 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() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.makeText(mContext, "确定", Toast.LENGTH_SHORT).show();}}); builder.setNeutralButton("中间", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.makeText(mContext, "中间", Toast.LENGTH_SHORT).show();}}); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.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() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.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;@Overridepublic void run() {// TODO Auto-generated method stubwhile (progress <= 100) {mProgress.setProgress(progress);try {Thread.sleep(100);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.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() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubsingleSelectedId = which;Toast.makeText(mContext, "你选择的ID为:"+which, Toast.LENGTH_SHORT).show();}}); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubif (singleSelectedId >= 0) {Toast.makeText(mContext, "你选择的ID为:"+singleSelectedId, Toast.LENGTH_SHORT).show();} else {singleSelectedId = 0;// 业务逻辑}}}); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic 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() { @Overridepublic void onClick(DialogInterface dialog, int which, boolean isChecked) {// TODO Auto-generated method stubif (isChecked) {list.add(which);} else {list.remove(which);}}}); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {String str = "你选择了:";@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubfor (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() {@Overridepublic 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() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubusername = (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() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub}}); builder.create().show(); }@Overridepublic 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愉快!
- android Dialog 各种Dialog 三个选项的、进度条的、单选的、多选的、自定义的对话框
- android Dialog 各种Dialog 三个选项的、进度条的、单选的、多选的、自定义的对话框
- android自定义三个按钮的dialog对话框
- Dialog对话框的自定义
- 各种自定义的dialog
- 【Android】Dialog 对话框各种式样的制作
- Android 的对话框 Dialog
- Dialog合集,全都不带图片(确定取消对话框、单选对话框、多选对话框、进度条对话框、带进度的进度条对话框)
- Android的各种Dialog
- android 中Dialog对话框及自定义Dialog的方法
- android简单实例--------------------3种特殊dialog的使用,单选、多选、适配器dialog对话框
- android的自定义dialog对话框实现
- 自定义对话框dialog的建立
- 【Android】自定义风格的各种dialog
- android Dialog的自定义
- 自定义Android的Dialog
- Android 自定义的Dialog
- android 自定义的dialog
- 从字符串中分离找出每个单词,并且寻找某个特定的单词
- 浪潮优派培训笔记:oracle笔记
- BFS用栈弹出路径
- jsp,图片形式的登录校验码
- ActivityGroup使用问题
- android Dialog 各种Dialog 三个选项的、进度条的、单选的、多选的、自定义的对话框
- 小感
- SDL库的安装,spca5xx的安装,spcaview 的安装,摄像头的查看,及常见问题的解决方法。
- [Android]使用ActivityGroup来切换Activity和Layout
- Windows 下安装Redmine 1.1.2 转帖修改
- PIC序列二——第一个程序的建立
- 针对SSL的中间人攻击
- 字符串比较忽略大小写 c语言实现
- Linux伪终端 telnet源码