欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2024-03-07 16:37:57
本文实例讲述了android中alertdialog显示简单和复杂列表的方法。分享给大家供大家参考,具体如下: alertdialog 显示简单列表 setitems...

本文实例讲述了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程序设计有所帮助。