素材巴巴 > 程序开发 >

【Android 开发】:UI控件之 AlertDialog 对话框控件的的使用(一)

程序开发 2023-09-09 11:27:28
这一讲我们开始讲Android UI界面的对话框 Dialogs。对话框是一个小的窗口,它会提示用户对一些额外的信息做一个决定。通常一个对话框不会填充整个窗口。此时对话框获取到焦点,Activity失去了焦点。Dialog 类是所有对话框的基类,通常我们也不会对这个类进行直接操作,而是使用它的子类进行操作。它的子类有:
1). AlertDialog 2). ProgressDialog 3). DatePickerDialog 4). TimePickerDialog
1. 首先我们来看一下 AlertDialog (警告框),它是继承了Dialog的子类,它是用户用的比较的多交互控件,一般对话框中包含了标题,信息,和最多三个的按钮。它会包含以下四个参数:    1). A title    2). A text message    3). One, two, or three buttons    4). A list of selectable items (with optional checkboxes or radio buttons) [包含一些列表的选项,比如说是可选的checkboxes 和 radio buttons ]     2. 想要创建对话框,需要使用 AlertDialog.Builder 子类,获得一个AlertDialog.Builder(Context)的Builder 对象,然后使用这个类的方法定义对话框的属性,当你这些设置好之后,就可以通过 onCreate() 方法创建了。   3. 程序实现如下
    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initComponents();button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub/** 查看API文档:AlertDialog.Builder* 获得这个对象builder之后,就可以调用里面的方法来设置对话框的各种属性了*/AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);builder.setTitle("提示");builder.setMessage("你确定要删除吗?");builder.setIcon(R.drawable.ic_launcher);/** 注意是这边的; new DialogInterface.OnClickListener 的 onclick 事件并不是我们普通的单击事件。*/builder.setPositiveButton("确定", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub//完全用户的操作:比如删除数据,提交请求等}});builder.setNegativeButton("取消", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub//取消用户的操作:比如停止下载等。//dialog.dismiss(); //让对话框消失。 这里可以不用去处理它。}});/** 还有一种按钮,这个一般是比较少用的,读者可以自己去选择* 一般一个对话框是两个按钮,很少出现三个按钮。*/builder.setNeutralButton("忽略", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub//忽略用户的操作}});//通常显示对话框的写法AlertDialog alertDialog = builder.create();alertDialog.show(); // 让对话框显示。}});}

4. 执行执行如图所示


   也可以在警告框中创建用户可选的列表选项list,就可以使用 setItems()方法。具体方式,查看API文档AlertDialog.Builder方法:public AlertDialog.Builder setItems (CharSequence[] items, DialogInterface.OnClickListener listener)。
程序代码:
    private Button button2;//定义3个item列表选项private final CharSequence[] items = {"北京", "上海", "广州"}; //这边定义为final,因为要在匿名内部类中使用@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initComponent();button2.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubAlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);builder.setTitle("提示");//builder.setMessage("请选择以下城市"); //注意如果对话框已经设置内容了,就不需在设置setMessage()方法,因为设置完之后,它会覆盖list的内容。builder.setItems(items, new DialogInterface.OnClickListener() {//查看which的值:是从0开始的,就是列表选项的序号.@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubCharSequence select_item = items[which];Toast.makeText(MainActivity.this, "--->" + select_item, Toast.LENGTH_SHORT).show();}});               AlertDialog alertDialog = builder.create();alertDialog.show();}});}
   执行结果

   

标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。