为了账号安全,请及时绑定邮箱和手机立即绑定

告诉大家如何记忆用户单选和复选对话框的选项

package com.example.alertdialogdemo;

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


public class MainActivity extends Activity {

	String[] single_list = {"男", "女", "女博士", "程序员"};	
	
	String[] hobby_list = {"音乐", "篮球", "足球", "吉他"};
	
	boolean[] checkedList = {false, false, false, false};
	
	private int checkedItem = 0;
	
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		initEvent1();
		initEvent2();
		initEvent3();
	}
	
	private void initEvent1() {
		findViewById(R.id.dialog_btn1).setOnClickListener(new OnClickListener() {
			
			public void onClick(View v) {
				showDialog1();
			}
		});
	}
	
	private void initEvent2() {
		findViewById(R.id.dialog_btn2).setOnClickListener(new OnClickListener() {
			
			public void onClick(View v) {
				showDialog2();
			}
		});
	}
	
	private void initEvent3() {
		findViewById(R.id.dialog_btn3).setOnClickListener(new OnClickListener() {
			
			public void onClick(View v) {
				showDialog3();
			}
		});
	}
	/**
	 * 显示确认对话框
	 */
	private void showDialog1() {
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setTitle("确认对话框");
		builder.setIcon(R.drawable.ic_launcher);
		builder.setMessage("这是确认的内容");  //设置内容
		builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
			
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(MainActivity.this, "确认内容", Toast.LENGTH_SHORT).show();
			}
		});
		
		builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
			
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				Toast.makeText(MainActivity.this, "取消内容", Toast.LENGTH_SHORT).show();
			}
		});
		
		AlertDialog dialog = builder.create(); //获取dialog
		dialog.show(); 
	}

	private void showDialog2() {
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setTitle("选择性别");
		builder.setIcon(R.drawable.ic_launcher);
		builder.setSingleChoiceItems(single_list, checkedItem, new DialogInterface.OnClickListener() {
			
			public void onClick(DialogInterface dialog, int which) {
				String str = single_list[which];
				
				checkedItem = which;  //记忆单选框选项
				
				Toast.makeText(MainActivity.this, "此人是" + str + "!", 
						Toast.LENGTH_SHORT).show();
			}
		});
		AlertDialog dialog = builder.create();
		dialog.show();
	}
	
	private void showDialog3() {
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setTitle("爱好");
		builder.setIcon(R.drawable.ic_launcher);
		builder.setMultiChoiceItems(hobby_list, checkedList, new DialogInterface.OnMultiChoiceClickListener() {
			
			public void onClick(DialogInterface dialog, int which, boolean isChecked) {
				String str = hobby_list[which];
				
				checkedList[which] = isChecked;  //记住复选框选项
				
				if (isChecked) {
					Toast.makeText(MainActivity.this, "I like " + str + "!", Toast.LENGTH_SHORT).show();
			} else {
				Toast.makeText(MainActivity.this, "I dislike " + str + "!", Toast.LENGTH_SHORT).show();
				
			   }
			}
		});
		
		builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
			
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				dialog.cancel();
				
				}
			
		});
		
		builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
			
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				dialog.cancel();
			}
		});
		
		AlertDialog dialog = builder.create();
		dialog.show();
		
    }
}

这是我的代码,大家可以参考下,记忆复选框,只需在开始定义一个布尔类型的数组,初始值都设置为false,然后在点击事件里将isChecked的值赋给定义的数组即可;单选只需定义一个int型的变量,方法和复选类似,还不懂的可以仔细看看代码。

正在回答

1 回答

居然写在了问答里,不是一般写在笔记分类下么……

0 回复 有任何疑惑可以回复我~
#1

Listener 提问者

大家如果有问题,一般会先在问答里寻找答案
2016-05-31 回复 有任何疑惑可以回复我~
#2

断罪龙 回复 Listener 提问者

说的也是,然后我就被课程末尾的问答给拉过来了……
2016-06-01 回复 有任何疑惑可以回复我~
#3

云海之上 回复 断罪龙

尴尬.jpg
2016-10-23 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android攻城狮的第二门课(第2季)
  • 参与学习       62396    人
  • 解答问题       207    个

本课程讲带你熟悉Android开发中常用的调试方式,菜单、调试程序

进入课程

告诉大家如何记忆用户单选和复选对话框的选项

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信