Dialog(二)——单选对话框和多选对话框

简介: MainActivity如下: import android.os.Bundle;import android.app.Activity;import android.

MainActivity如下:

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

public class MainActivity extends Activity {
    private Button mSingleChoiceButton;
    private Button mMultiChoiceButton;
    private Dialog mSingleDialog;
    private Dialog mMultiDialog;
    boolean singleFlags[]=null;
    boolean multiFlags[]=null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		init();
	}
    private void init(){
    	mSingleChoiceButton=(Button) findViewById(R.id.singleChoiceButton);
    	mSingleChoiceButton.setOnClickListener(new ButtonOnClickListenerImpl());
    	mMultiChoiceButton=(Button) findViewById(R.id.multiChoiceButton);
    	mMultiChoiceButton.setOnClickListener(new ButtonOnClickListenerImpl());
    }

	private class ButtonOnClickListenerImpl implements OnClickListener {
		@Override
		public void onClick(View view) {
			switch (view.getId()) {
			case R.id.singleChoiceButton:
				singleFlags=new boolean[]{true,false,false};
                Builder singleBuilder=new Builder(MainActivity.this);
                singleBuilder.setIcon(R.drawable.ic_launcher);
                singleBuilder.setTitle(getResources().getString(R.string.dialog_title));
                singleBuilder.setSingleChoiceItems(R.array.singleChoiceArray, 0, new DialogInterface.OnClickListener() {
					@Override
					public void onClick(DialogInterface dialog, int which) {
						for (int i = 0; i < singleFlags.length; i++) {
							if (i==which) {
								singleFlags[i]=true;
							}else{
								singleFlags[i]=false;
							}
						}
					}
				});
                singleBuilder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
					@Override
					public void onClick(DialogInterface dialog, int which) {
						String result="";
						for (int i = 0; i < singleFlags.length; i++) {
							if (singleFlags[i]==true) {
								result=getResources().getStringArray(R.array.singleChoiceArray)[i];
							}
						}
						 Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show();
					}
				});
                
                mSingleDialog=singleBuilder.create();
                mSingleDialog.show();
                break;
			case R.id.multiChoiceButton:
				multiFlags=new boolean[]{true,false,false};
                Builder multiBuilder=new Builder(MainActivity.this);
                multiBuilder.setIcon(R.drawable.ic_launcher);
                multiBuilder.setTitle(getResources().getString(R.string.dialog_title));
                multiBuilder.setMultiChoiceItems(R.array.multiChoiceArray, multiFlags, new DialogInterface.OnMultiChoiceClickListener() {
					@Override
					public void onClick(DialogInterface arg0, int which, boolean isChecked) {
						multiFlags[which]=isChecked;
					}
				});
                multiBuilder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
					@Override
					public void onClick(DialogInterface dialog, int arg1) {
						 String result="";
						 
						 for (int i = 0; i < multiFlags.length; i++) {
							if (multiFlags[i]) {
								result=result+getResources().getStringArray(R.array.multiChoiceArray)[i]+" ";
							}
						}
						 Toast.makeText(MainActivity.this,result, Toast.LENGTH_SHORT).show();
					}
				});
                
                mMultiDialog=multiBuilder.create();
                mMultiDialog.show();
				break;
			default:
				break;
			}
		}

	}


}

main.xml如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical"
    >

    <Button
        android:id="@+id/singleChoiceButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/singleChoice" 
        android:layout_marginTop="100dip"
        android:textSize="20sp"
     />
    
    <Button
        android:id="@+id/multiChoiceButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/multiChoice" 
        android:layout_marginTop="100dip"
        android:textSize="20sp"
     />

</LinearLayout>


相关文章
|
19天前
|
JavaScript 前端开发
uViw Dialog 对话框
uViw Dialog 对话框
28 0
|
Android开发
Android 常见对话框的简单使用(提示信息对话框、单选多选对话框、自定义对话框)
Android 常见对话框的简单使用(提示信息对话框、单选多选对话框、自定义对话框)
295 0
Android 常见对话框的简单使用(提示信息对话框、单选多选对话框、自定义对话框)
|
10月前
|
前端开发 C# 数据安全/隐私保护
ApeForms | C# - WinForm临时对话框(消息框、提示框、输入框、密码框、单选框、多选框等)
ApeForms一款基于WinForm实现的开源免费商用的UI库,其中提供了一套便于用户交互的临时对话框组件(Dialog),可用于快速创建开发中常见的交互对话框,例如:消息框、提示框、输入框、单选框、多选框等。 ApeFree.ApeDialogs并不是一个包含Dialog实现的UI库,而是一套Dialog标准(提供了一套临时弹出对话框的实现标准)。 Dialog是界面开发过程中必不可少的组件,无论是桌面开发、Web前端开发、移动端开发,甚至命令行应用程序中的一次“Yes or No”的输入都可以看做是一次Dialog弹框。
374 0
ApeForms | C# - WinForm临时对话框(消息框、提示框、输入框、密码框、单选框、多选框等)
|
11月前
|
XML Java API
按钮和复选框控件
按钮和复选框控件
53 0
|
11月前
|
Windows
Qt之单选按钮和复选按钮(QRadioButton、QCheckBox)
Qt之单选按钮和复选按钮(QRadioButton、QCheckBox)
267 0
|
Web App开发 JavaScript 前端开发
对话框、模态框和弹出框看起来很相似,它们有何不同?
由于一个新的 popover 属性正在被提出,所以这篇文章将探讨对话框(dialogs)、弹出窗口(popovers)、叠加层(overlays)和揭示小部件(disclosure widgets)之间的区别。
26284 1
QTableView如何取消选中行
QTableView如何取消选中行
1217 0
EasyUI–消息框、对话框和窗体详解
本篇主要介绍信息提示框、对话框及窗体相关控件,这些都是最常用的页面弹出控件,使用一个详细的例子描述。 按惯例献上案例的示意图:
502 0
EasyUI–消息框、对话框和窗体详解