Android 之对话框

1. 普通的AlertDialog2. 列表对话框分为 简单列表对话框,单选列表对话框,多选列表对话框,如图所示:

3. 进度条对话框4. 自定义对话框5.  使用Activity 托管对话框

关于  简单列表对话框:通过AlertDialog.Builder类的setItems方法创建,该方法有2种定义:

①  public Builder  setItems(int itemsId,  final  OnClickListener  listener)   //  itemsId  表示字符串数组的资源ID,  该资源指定的数组会显示在列表中

②  public Builder  setItems(CharSequence[]  items,final  OnClickListener  listener)  //  items 表示用于显示在列表中的字符串数组

显示简单列表对话框关键代码,通过一个定时器实现一定时间后自动关闭对话框的功能,如下:

private void showListDialog()
 {
  new AlertDialog.Builder(this).setTitle("选择省份").setItems(provinces,
    new DialogInterface.OnClickListener()
    {
     public void onClick(DialogInterface dialog, int which)
     {
      final AlertDialog ad = new AlertDialog.Builder(
        Main.this).setMessage(
        "您已经选择了: " + which + ":" + provinces[which]).show();

      // 设置一个定时器,3秒后调用run方法
      Handler hander = new Handler();
      hander.postDelayed(new Runnable()
      {
       @Override
       public void run()
       {
        ad.dismiss();
       }
      }, 3000);
     }
    }).show();
 }   

AlertDialog.Builder 类的 setSingleChoiceItems  方法可以创建带单选按钮的列表对话框,setSingleChoiceItems方法有4种重载形式

①  public Builder  setSingleChoiceItems(int  itemsId,int checkedItem,final  OnClickListener  listener)    //itemsId 表示数组资源Id,从资源文件中装载数据 

②  public Builder  setSingleChoiceItems(Cursor  cursor, int  checkedItem,String  labelColumn, final OnClickListener  listener)  //从数据集中装载数据 

③  public Builder  setSingleChoiceItems(CharSequence[]  items,  int  checkedItem, final  OnClickListener  listener)   //从字符串数组中装载数据 

④  public Builder  setSingleChoiceItems(ListAdapter  adapter,int  checkedItem,final  OnClickListener  listener)   //从ListAdapter  对象中装载数据这里listener 表示单击某个列表项时被触发的监听事件; 如果数据源是数据集, 数据集 中的某一列会作为列表对话框的数据加载到列表框中,labelColumn 表示该列的名称

AlertDialog,Builder  类的setMultiChoiceItems 方法可以创建带复选框的列表对话框,setMultiChoiceItems有以下3种重载形式

① public Builder  setMultiChoiceItems(int  itemsId,  boolean[]  checkedItems,final  OnClickChoiceClickListener listener)

②  public Builder  setMultiChoiceItems(Cursor cursor, String  isCheckedColumn,String  labelColumn,final  OnMultiChoiceClickListener  listener)

③  public Builder  setMultiChoiceItems(CharSequence[]  items,boolean[] checkedItems, final  OnMultiChoiceClickListener  listener)这里isCheckedColumn确定列表项是否被选中,1 表示选中,0未选中

具体代码参见 ch04_listdialog工程,已对源码作了改进,选择后加了定时器,3秒后将对话框结果将消失  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值