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

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>
时间: 2024-12-10 08:02:25

Dialog(二)——单选对话框和多选对话框的相关文章

Android中创建对话框(确定取消对话框、单选对话框、多选对话框)实例代码_Android

Android中可以创建三种对话框.确定取消对话框.单选对话框.多选对话框 android中的确定取消对话框演示示例 Android中使用单选对话框的演示案例 android中使用多选对话框的演示案例 实现代码如下 修改activity_main.xml文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.

Android单选对话框和多选对话框

 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:gra

Android使用AlertDialog实现的信息列表单选、多选对话框功能

在使用AlertDialog实现单选和多选对话框时,分别设置setSingleChoiceItems()和setMultiChoiceItems()函数. 下面看主要的代码: 数据源数组: <resources> <!--单选--> <string-array name="arr_weather"> <item >晴</item> <item >多云</item> <item >小雨<

android 多选对话框 默认选中问题

问题描述 多选对话框如何让其出现的时候默认选中某一项 解决方案 多选项目 check.xml<?xml version="1.0" encoding="utf-8"?><resources><string-array name="hobby"><item>篮球</item><item>足球</item><item>排球</item><

【Android开发】消息提示框与对话框-使用AlertDialog创建对话框

AlertDialog类的功能十分强大,它不仅可以生成带按钮的提示对话框,还可以生成带列表的列表对话框,概括起来有一下4种: 1.带确定.中立和取消等N个按钮的提示对话框,其中的按钮个数不是固定的,可以根据需要添加.例如,不需要中立按钮,则可以只生成带有确定和取消按钮的对话框,也可以是只需有一个按钮的对话框. 2.带列表的列表对话框 3.带多个单选列表项和N个按钮的列表对话框 4.带多个多选列表项和N个按钮的列表对话框 在使用AlertDialog类生成对话框时,常用的方法如下所示: setTi

MFC创建模态对话框和非模态对话框的方法_C 语言

在MFC中对话框有两种形式,一个是模态对话框(model dialog box),一个是非模态对话框(modeless dialog box).本文对此分别简述其创建方法. 一.模态对话框(model dialog box) 在程序运行的过程中,若出现了模态对话框,那么主窗口将无法发送消息,直到模态对话框退出才可以发送. 点击模态对话框中的OK按钮,模态对话框会被销毁. 创建一个模态对话框的代码如下所示: //创建一个模态对话框 CTestDialog td; td.DoModal(); 其中C

mfc edit-mfc 如何使edit对话框在删除edit对话框的内容时,自动添加为edit对话框添加内容

问题描述 mfc 如何使edit对话框在删除edit对话框的内容时,自动添加为edit对话框添加内容 mfc 如何使edit对话框在删除edit对话框的内容时,自动添加为该edit对话框添加内容(固定内容) 解决方案 设置.获得对话框中 编辑框控件 EDIT 的内容 解决方案二: 给这个添加一个函数,当它失去焦点的时候会触发这个函数,判断内容是否为空,空的话就改变内容.在右侧的属性里会有一些事件,你找一下,肯定会有失去焦点触发函数,双击然后生成函数,写代码, 解决方案三: 你还可以在添加一个线程

qt4-使用QT新建Designer Form对话框时没有生成对话框的.cpp和.h文件?

问题描述 使用QT新建Designer Form对话框时没有生成对话框的.cpp和.h文件? 如图,我看着视频教程做的,新建Designer Form对话框时没有生成对话框的.cpp和.h文件.我用的是QT5.4,视频里用的是QT4.7 解决方案 design form本来就是只会生成一个.ui文件. Qt设计师界面类才是生成.h .cpp .ui三个文件的. 解决方案二: http://blog.csdn.net/acs713/article/details/9358507 解决方案三: 没有

投票的列项单选框和多选框怎么在代码打出来

问题描述 投票的列项单选框和多选框怎么遍历出来? 解决方案 解决方案二:我来看看的可我看了过后发现我没有明白解决方案三:不太明白LZ想表达什么