多种按钮对话框

XML:
 <Button
        android:id="@+id/btn_01"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="弹出文本对话框" />
    <Button
        android:id="@+id/btn_02"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="弹出列表对话框" />
    <Button
        android:id="@+id/btn_03"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="弹出单选对话框" />
    <Button
        android:id="@+id/btn_04"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="弹出多选对话框" />
    <Button
        android:id="@+id/btn_05"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="弹出自定义对话框" />

主页:
public class MainActivity extends Activity implements OnClickListener{

	private Button btn_01;
	private Button btn_02;
	private Button btn_03;
	private Button btn_04;
	private Button btn_05;
	private EditText dialog_edit;
	private Button dialog_btn;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		//找到按钮的控件
		btn_01 = (Button) findViewById(R.id.btn_01);
		btn_02 = (Button) findViewById(R.id.btn_02);
		btn_03 = (Button) findViewById(R.id.btn_03);
		btn_04 = (Button) findViewById(R.id.btn_04);
		btn_05 = (Button) findViewById(R.id.btn_05);
		//给控件添加监听
		btn_01.setOnClickListener(this);
		btn_02.setOnClickListener(this);
		btn_03.setOnClickListener(this);
		btn_04.setOnClickListener(this);
		btn_05.setOnClickListener(this);
	}

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.btn_01:
			//弹出文本对话框
			normalDialog();
			break;
		case R.id.btn_02:
			//弹出列表对话框
			listDialog();
			break;
		case R.id.btn_03:
			//弹出单选对话框
			singleDialog();
			break;
		case R.id.btn_04:
			//弹出多选对话框
			moreDialog();
			break;
		case R.id.btn_05:
			//弹出自定义对话框
			myDialog();
			break;

		default:
			break;
		}
	}
	/**
	 * 自定义对话框
	 */
	private void myDialog() {
		// 1.创建构造器
		Builder builder = new AlertDialog.Builder(MainActivity.this);
		//2.通过构造器,创建一个dialog对象
		dialog = builder.create();
		View view = View.inflate(MainActivity.this, R.layout.dialog_layout, null);
		//3.可以给dialog对象设置自己的布局(设置自己的视图对象)
		dialog.setView(view );
		/**
		 * 发现问题:
		 * 1.如果想要对dialog里面的控件进行操作,先找到指定的控件
		 */
		//找到控件
		dialog_edit = (EditText) view.findViewById(R.id.dialog_edit);
		dialog_btn = (Button) view.findViewById(R.id.dialog_btn);
		
		dialog_btn.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// 提示输入框输入的内容
				Toast.makeText(MainActivity.this, dialog_edit.getText().toString(), 0).show();
				//隐藏掉dialog对话框
				dialog.dismiss();
			}
		});
		//4.显示对话框
		dialog.show();
	}

	/**
	 * 多选对话框
	 */
	private void moreDialog() {
		// 1.创建dialog的构造器
		Builder builder = new AlertDialog.Builder(MainActivity.this);
		//2.设置标题
		builder.setTitle("请选择你的爱好");
		
		//3.设置多选按钮的监听
		/**
		 * items:展示在多选列表中的数据 
		 * checkedItems:默认选中状态的数组
		 */
		final String[] items = {"吃","喝","玩","学"};
		final boolean[] checkedItems = {false,true,true,false};
		builder.setMultiChoiceItems(items, checkedItems, new OnMultiChoiceClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which, boolean isChecked) {
				// 
				
			}
		});
		//设置确定按钮
		builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// 点击确定按钮,提示当前选中的条目
				for (int i = 0; i < items.length; i++) {
					if (checkedItems[i]) {
						Toast.makeText(MainActivity.this, "选中爱好:"+items[i], 0).show();
					}
				}
			}
		});
		//4.显示对话框
		builder.show();
		
	}
	/**
	 * 单选对话框
	 */
	int count = 0;
	private AlertDialog dialog;
	private void singleDialog() {
		// 1.创建dailog的构造器
		Builder builder = new AlertDialog.Builder(MainActivity.this);
		//2.设置属性
		builder.setTitle("请选择性别");
		//3.设置单选按钮
		/**
		 * items:条目的数据
		 * checkedItem:默认选中的条目--->如果不需要默认选中,直接给-1
		 */
		final String[] items = {"女","男","妖"};
		builder.setSingleChoiceItems(items , -1, new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// 这个监听负责选中条目  which:可以控制当前的选中条目
				count = which;
			}
		});
		builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// 输出一下选中的内容
				Toast.makeText(MainActivity.this, "选中的性别是:"+items[count], 0).show();
				
			}
		});
		
		//4.显示对话框
		builder.show();
		
	}

	/**
	 * 列表对话框:不要设置Message,如果设置了,就不会显示列表,只显示文本信息
	 */
	private void listDialog() {
		//1.创建alertdialog的构造器
		Builder builder = new AlertDialog.Builder(MainActivity.this);
		//2.设置属性
		builder.setTitle("请选择:");
		//3.添加列表
		/**
		 * items:string类型的数组--》展示在列表上的数据
		 */
		final String[] items = {"25","27","29"};
		builder.setItems(items, new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// 吐丝一下,点击的条目内容
				Toast.makeText(MainActivity.this, items[which], 0).show();
				
			}
		});
		
		//4.显示列表对话框
		builder.show();
		
	}

	/**
	 * 文本对话框:自带布局
	 */
	private void normalDialog() {
		//1.创建对话框的对象--->对话框的构造器
		Builder builder = new AlertDialog.Builder(MainActivity.this);
		//2.设置alertdialog的属性
		builder.setTitle("提示");//设置标题
		builder.setMessage("确定删除吗?");//设置显示的文本内容
		builder.setIcon(R.drawable.ic_launcher);//设置dialog的图标
		//3.设置按钮----》Positive:积极的按钮
		builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// 确定按钮	
				Toast.makeText(MainActivity.this, "确定删除", 0).show();
			}
		});
		//4.设置取消按钮---》NegativeButton:消极的按钮
		builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// 取消按钮	
				Toast.makeText(MainActivity.this, "取消删除", 0).show();
				
			}
		});
		//设置忽略的按钮
		builder.setNeutralButton("忽略", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// 忽略按钮	-->关闭对话框,不执行任何操作(返回当前的父窗体页面,并且清空选中的数据)
				Toast.makeText(MainActivity.this, "忽略选项", 0).show();
				
			}
		});
		//5.显示对话框
		//builder.show();
		builder.create().show();
	}
}

提示页面:
<EditText 
        android:id="@+id/dialog_edit"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:hint="请输入内容"
        />

    <Button
        android:id="@+id/dialog_btn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="提交" />

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值