当前位置: 移动技术网 > 移动技术>移动开发>Android > Android中AlertDilog显示简单和复杂列表的方法

Android中AlertDilog显示简单和复杂列表的方法

2019年07月24日  | 移动技术网移动技术  | 我要评论

本文实例讲述了android中alertdialog显示简单和复杂列表的方法。分享给大家供大家参考,具体如下:

alertdialog 显示简单列表 setitems

import android.app.activity;
import android.app.alertdialog;
import android.content.dialoginterface;
import android.os.bundle;
import android.os.handler;
import android.view.view;
import android.view.view.onclicklistener;
import android.widget.button;
public class listdialogtest1extends activityimplements onclicklistener
{
  private button btnlistdialog;
  private string[] provinces =new string[] { "上海", "北京", "湖南", "湖北", "海南" };
  /** called when the activity is first created. */
  @override
  public void oncreate(bundle savedinstancestate)
  {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.main);
    btnlistdialog = (button) findviewbyid(r.id.btnlistdialog);
    btnlistdialog.setonclicklistener(this);
  }
  @override
  public void onclick(view v)
  {
    switch (v.getid())
    {
    case r.id.btnlistdialog:
      showlistdialog();
      break;
    }
  }
  private void showlistdialog()
  {
    alertdialog.builder builder =new alertdialog.builder(this);
    builder.settitle("请选择省份");
    /**
     * 1、public builder setitems(int itemsid, final onclicklistener
     * listener) itemsid表示字符串数组的资源id,该资源指定的数组会显示在列表中。 2、public builder
     * setitems(charsequence[] items, final onclicklistener listener)
     * items表示用于显示在列表中的字符串数组
     */
    builder.setitems(provinces, new dialoginterface.onclicklistener()
    {
      @override
      public void onclick(dialoginterface dialog,int which)
     {
      /*
      * ad变量用final关键字定义,因为在隐式实现的runnable接口 的run()方法中 需要访问final变量。
       */
      final alertdialog ad =new alertdialog.builder(
      listdialogtest1.this).setmessage(
        "你选择的是:" + which + ": " + provinces[which]).show();
      handler handler = new handler();
      runnable runnable = new runnable()
      {
       @override
        public void run()
        {
          // 调用alertdialog类的dismiss()方法关闭对话框,也可以调用cancel()方法。
          ad.dismiss();
        }
      };
      // 5秒后运行run()方法。
      handler.postdelayed(runnable, 5 * 1000);
      }
    });
    builder.create().show();
  }
}

alertdialog 显示复杂列表 setmultichoiceitems

一、通过alertdialog.builder类的setmultichoiceitems()方法可以创建列表对话框,方法如下:

1、 从资源文件中装载数据:

public builder setmultichoiceitems(int itemsid, boolean[]checkeditems, final onmultichoicelistener listener)

2、从数据集中装载数据

public builder setmultichoiceitems(cursor cursor, stringischeckedcolumn, string labelcolumn, final onmultichoicelistenerlistener)

3、从字符串数组中装载数据

public builder setmultichoiceitems(charsequence[] items,boolean[] checkeditems, final onmultichoicelistener listener)

import android.app.activity;
import android.app.alertdialog;
import android.app.alertdialog.builder;
import android.content.dialoginterface;
import android.content.dialoginterface.onmultichoiceclicklistener;
import android.graphics.color;
import android.os.bundle;
import android.view.view;
import android.widget.button;
import android.widget.textview;
public class diaactivity extends activity {
 /** called when the activity is first created. */
 private button btn;
 private textview tv;
 private string[] shuxing = { "字体颜色", "字体大小" };
 private boolean[] chuzhi = { false, false };
 @override
 public void oncreate(bundle savedinstancestate) {
 super.oncreate(savedinstancestate);
 setcontentview(r.layout.main);
 btn = (button) findviewbyid(r.id.button1);
 tv = (textview) findviewbyid(r.id.textview1);
 btn.setonclicklistener(new view.onclicklistener() {
  @override
  public void onclick(view v) {
  // todo auto-generated method stub
  builder b = new alertdialog.builder(diaactivity.this);
  b.settitle("gggggg");
  b.setmultichoiceitems(shuxing, chuzhi,
   new dialoginterface.onmultichoiceclicklistener() {
    @override
    public void onclick(dialoginterface dialog,
     int which, boolean ischecked) {
    switch (which) {
    case 0:
     chuzhi[0] = ischecked;
     break;
    case 1:
     chuzhi[1] = ischecked;
     break;
    default:
     break;
    }
    }
   });
  b.setpositivebutton("确定",
   new dialoginterface.onclicklistener() {
    @override
    public void onclick(dialoginterface dialog,
     int which) {
    if (chuzhi[0] == true) {
     tv.settextcolor(color.blue);
    }
    if (chuzhi[1] == true) {
     tv.settextsize(50f);
    }
    }
   });
  b.create().show();
  }
 });
 }
}

二、通过alertdialog.builder类的setsinglechoiceitems方法可以创建带单按钮的列表:方法如下:

1、从资源文件中装载数据:

public builder setsinglechoiceitems(int itemsid, intcheckeditem, final onclicklistener listener)

2、从数据集中装载数据

public builder setsinglechoiceitems(cursor cursor, intcheckeditem, string labelcolumn, final onclicklistenerlistener)

3、从字符串数组中装载数据

public builder setsinglechoiceitems(charsequence[] items, intcheckeditem, final onclicklistener listener)

4、从listadapter对象中装载数据

public builder setsinglechoiceitems(listadapter adpater, intcheckeditem, final onclicklistener listener)

import android.app.activity;
import android.app.alertdialog;
import android.content.dialoginterface;
import android.os.bundle;
import android.os.handler;
import android.view.view;
import android.view.view.onclicklistener;
import android.widget.button;
import android.widget.toast;
public class singlechoiceitemstest extends activityimplements onclicklistener
{
  private string[] province = new string[] { "上海", "北京", "湖南", "湖北", "海南" };
  private button btnsinglechoicelist;
  // 单击事件对象的实例
  private buttononclick buttononclick = new buttononclick(1);
  /** called when the activity is first created. */
  @override
  public void oncreate(bundle savedinstancestate)
  {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.main);
    btnsinglechoicelist = (button) findviewbyid(r.id.btnsinglechoice);
    btnsinglechoicelist.setonclicklistener(this);
  }
  @override
  public void onclick(view v)
  {
    showsinglechoicebutton();
  }
  // 在单选选项中显示 确定和取消按钮
  //buttononclickg变量的数据类型是buttononclick,一个单击事件类
  private void showsinglechoicebutton()
  {
    alertdialog.builder builder = new alertdialog.builder(this);
    builder.settitle("请选择省份");
    builder.setsinglechoiceitems(province, 0, buttononclick);
    builder.setpositivebutton("确定", buttononclick);
    builder.setnegativebutton("取消", buttononclick);
    builder.show();
  }
  private class buttononclick implements dialoginterface.onclicklistener
  {
    private int index; // 表示选项的索引
    public buttononclick(int index)
    {
      this.index = index;
    }
    @override
    public void onclick(dialoginterface dialog,int which)
    {
      // which表示单击的按钮索引,所有的选项索引都是大于0,按钮索引都是小于0的。
      if (which >= 0)
      {
       //如果单击的是列表项,将当前列表项的索引保存在index中。
       //如果想单击列表项后关闭对话框,可在此处调用dialog.cancel()
       //或是用dialog.dismiss()方法。
       index = which;
      }
      else
      {
       //用户单击的是【确定】按钮
       if (which == dialoginterface.button_positive)
       {
         //显示用户选择的是第几个列表项。
         final alertdialog ad = new alertdialog.builder(
             singlechoiceitemstest.this).setmessage(
             "你选择的地区是:" + index + ":" + province[index]).show();
         //五秒钟后自动关闭。
         handler hander = new handler();
         runnable runnable = new runnable()
         {
           @override
           public void run()
           {
             ad.dismiss();
           }
         };
         hander.postdelayed(runnable, 5 * 1000);
       }
       //用户单击的是【取消】按钮
       else if (which == dialoginterface.button_negative)
       {
         toast.maketext(singlechoiceitemstest.this, "你没有选择任何东西",
             toast.length_long);
       }
      }
    }
  }
}

更多关于android相关内容感兴趣的读者可查看本站专题:《android图形与图像处理技巧总结》、《android开发入门与进阶教程》、《android调试技巧与常见问题解决方法汇总》、《android多媒体操作技巧汇总(音频,视频,录音等)》、《android基本组件用法总结》、《android视图view技巧总结》、《android布局layout技巧总结》及《android控件用法总结

希望本文所述对大家android程序设计有所帮助。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网