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>


相关文章
|
7月前
|
JavaScript 前端开发
uViw Dialog 对话框
uViw Dialog 对话框
127 0
|
Android开发
Android 常见对话框的简单使用(提示信息对话框、单选多选对话框、自定义对话框)
Android 常见对话框的简单使用(提示信息对话框、单选多选对话框、自定义对话框)
403 0
Android 常见对话框的简单使用(提示信息对话框、单选多选对话框、自定义对话框)
|
4月前
|
移动开发 前端开发 JavaScript
H5对话框元素<dialog> 讲解
元素定义对话框或窗口,如点击按钮弹出的对话框、警告提示等。通过 `open` 属性控制可见性,`showModal()` 方法展示模态框。支持基本样式调整,如背景颜色和边框。兼容性详情参见 MDN 文档。
81 4
H5对话框元素<dialog> 讲解
|
4月前
|
移动开发 前端开发 JavaScript
H5对话框元素<dialog>
H5对话框元素<dialog>
39 0
H5对话框元素<dialog>
|
4月前
点击全选,使所有复选框被选中
点击全选,使所有复选框被选中
52 0
单选、全选、反选、获得所有选中的checkbox
单选、全选、反选、获得所有选中的checkbox
|
JavaScript 前端开发
49EasyUI 窗口- 自定义带有工具条和按钮的对话框
49EasyUI 窗口- 自定义带有工具条和按钮的对话框
48 0
|
前端开发 C# 数据安全/隐私保护
ApeForms | C# - WinForm临时对话框(消息框、提示框、输入框、密码框、单选框、多选框等)
ApeForms一款基于WinForm实现的开源免费商用的UI库,其中提供了一套便于用户交互的临时对话框组件(Dialog),可用于快速创建开发中常见的交互对话框,例如:消息框、提示框、输入框、单选框、多选框等。 ApeFree.ApeDialogs并不是一个包含Dialog实现的UI库,而是一套Dialog标准(提供了一套临时弹出对话框的实现标准)。 Dialog是界面开发过程中必不可少的组件,无论是桌面开发、Web前端开发、移动端开发,甚至命令行应用程序中的一次“Yes or No”的输入都可以看做是一次Dialog弹框。
568 0
ApeForms | C# - WinForm临时对话框(消息框、提示框、输入框、密码框、单选框、多选框等)
|
Web App开发 JavaScript 前端开发
对话框、模态框和弹出框看起来很相似,它们有何不同?
由于一个新的 popover 属性正在被提出,所以这篇文章将探讨对话框(dialogs)、弹出窗口(popovers)、叠加层(overlays)和揭示小部件(disclosure widgets)之间的区别。
26392 1
|
XML Java API
按钮和复选框控件
按钮和复选框控件
95 0