android学习笔记之具有选择功能的对话框

本文介绍了如何在Android中创建具有选择功能的对话框,重点是使用AlertDialog及其Builder类。AlertDialog作为Dialog的子类,常用于用户交互,如提示、警告和确认。示例展示了如何以列表形式展示内容,并通过代码呈现了AlertDialog的使用。
摘要由CSDN通过智能技术生成

       为了实现具有选择功能的对话框这一程序,首先我们来介绍一个非常有用的组件——AlertDialog。

       java.lang.Object
         |-- android.app.Dialog
                |-- android.app.AlertDialog

       从继承关系中我们可以看出,AlertDialog直接继承自Dialog。我们知道,Dialog窗口主要目的是与User确认及互动,用于“程序提示”,“警告”或“确认”等,是android应用程序中非常重要的一部分。

       在android sdk中,虽然有许多窗口,但真正具有交互功能的则为AlertDialog对话窗口。AlertDialog同样提供了一个静态的嵌套类AlertDialog.Builder供开发者使用。

       AlertDialog可以以列表项目的方式来显示内容,这种显示方式也是非常常见的,如用于投票、选择器以及遥控器等应用程序。

 

程序运行效果:

 

Activity程序如下所示,注意在第二个AlertDialog对话框中设置了两个按钮,但由于本程序重在说明AlertDialog用法,故未添加具体的实现。

public class MainActivity extends Activity 
{
	private Button button=null;
	
	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		super.setContentView(R.layout.activity_main);
		this.button=(Button)super.findViewById(R.id.button);
		//设置按钮单击消息响应
		this.button.setOnClickListener(new OnClickListener() 
		{
		    @Override
			public void onClick(View v) 
		    {
		    	//新建AlertDialog对话框
				new AlertDialog.Builder(MainActivity.this)
				.setTitle(R.string.string_alert_title)
				.setItems(R.array.items_dialog,new DialogInterface.OnClickListener()
				{
					@Override
					public void onClick(DialogInterface dialog, int which) 
					{
						//取出响应字符串资源
				    	CharSequence string_body=MainActivity.this.getResources().getString(R.string.string_alert_body);
				    	final String[] colors=MainActivity.this.getResources().getStringArray(R.array.items_dialog);
				    	//弹出新的对话框
						new AlertDialog.Builder(MainActivity.this)
						.setMessage(string_body+colors[which])
						.setNeutralButton(R.string.string_alert_ok, new DialogInterface.OnClickListener() //确认操作
						{
							@Override
							public void onClick(DialogInterface dialog, int which) 
							{
								//添加操作
							}
						})
						.setNegativeButton(R.string.string_alert_cancel, new DialogInterface.OnClickListener() //取消操作
						{
							@Override
							public void onClick(DialogInterface dialog, int which) 
							{
								dialog.dismiss();
							}
						}).show();
					}
				}).show();
			}
		});
	}

}


 

布局文件非常简单,只有一个Button组件,此处不再给出。

字符串资源文件如下:

 

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">demo3</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
    <string name="button_text">选择颜色</string>
    <string name="string_alert_title">请选择您喜欢的颜色</string>
    <string name="string_alert_body">你选择的是:</string>
    <string name="string_alert_ok">确认</string>
    <string name="string_alert_cancel">取消</string>
    
    <array name="items_dialog">
        <item>红色</item>
        <item>绿色</item>
        <item>蓝色</item>
    </array>
    
</resources>


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值