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

Android AlertDialog对话框详解及实例

程序员文章站 2024-02-25 19:47:03
android  alertdialog 关系图如下: android主要提供四种对话框: 1:alertdialog:功能最丰富,实际...

android  alertdialog

Android AlertDialog对话框详解及实例

Android AlertDialog对话框详解及实例

关系图如下:

android主要提供四种对话框:

1:alertdialog:功能最丰富,实际应用最广的对话框。
2:progressdialog:进度条对话框
3:datepickerdialog:日期选择器对话框
4:timepickerdialog:时间选择器对话框

创建一个对话框的步骤:

alertdialog.builder builder = new alertdialog.builder(this)
        // 1:设置对话框标题
        .settitle("自定义列表项对话框")
            // 2:设置图标
        .seticon(r.drawable.tools)
            // 3:设置内容
        .setmessage("对话框的测试内容\n第二行内容");
    // 为alertdialog.builder添加“确定”按钮
    setpositivebutton(builder);
    // 为alertdialog.builder添加“取消”按钮
    setnegativebutton(builder)
        .create()
        .show();

代码区:

main.xml代码区:

<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:gravity="center_horizontal">
<!-- 显示一个普通的文本编辑框组件 -->
<edittext 
  android:id="@+id/show"
  android:layout_width="match_parent" 
  android:layout_height="wrap_content" 
  android:editable="false"/>
<!-- 定义一个普通的按钮组件 -->
<button
  android:layout_width="match_parent" 
  android:layout_height="wrap_content" 
  android:text="简单对话框"
  android:onclick="simple"
  />
<!-- 定义一个普通的按钮组件 -->
<button
  android:layout_width="match_parent" 
  android:layout_height="wrap_content" 
  android:text="简单列表项对话框"
  android:onclick="simplelist"
  /> 
<!-- 定义一个普通的按钮组件 -->
<button
  android:layout_width="match_parent" 
  android:layout_height="wrap_content" 
  android:text="单选列表项对话框"
  android:onclick="singlechoice"
  /> 
<!-- 定义一个普通的按钮组件 -->
<button
  android:layout_width="match_parent" 
  android:layout_height="wrap_content" 
  android:text="多选列表项对话框"
  android:onclick="multichoice"
  /> 
<!-- 定义一个普通的按钮组件 -->
<button
  android:layout_width="match_parent" 
  android:layout_height="wrap_content" 
  android:text="自定义列表项对话框"
  android:onclick="customlist"
  /> 
<!-- 定义一个普通的按钮组件 -->
<button
  android:layout_width="match_parent" 
  android:layout_height="wrap_content" 
  android:text="自定义view对话框"
  android:onclick="customview"
  />         
</linearlayout>

activity代码区:

public class mainactivity extends activity {
  textview show;
  string[] items = new string[] {
      "aserbao", "android",
      " java",
      "ios" };

  @override
  protected void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.main);
    show = (textview) findviewbyid(r.id.show);
  }

  public void simple(view source)
  {
    alertdialog.builder builder = new alertdialog.builder(this)
      // 设置对话框标题
      .settitle("简单对话框")
      // 设置图标
      .seticon(r.drawable.tools)
      .setmessage("对话框的测试内容\n第二行内容");
    // 为alertdialog.builder添加“确定”按钮
    setpositivebutton(builder);
    // 为alertdialog.builder添加“取消”按钮
    setnegativebutton(builder)
      .create()
      .show();
  }

  public void simplelist(view source)
  {
    alertdialog.builder builder = new alertdialog.builder(this)
        // 设置对话框标题
        .settitle("简单列表对话框")
            // 设置图标
        .seticon(r.drawable.tools)
            // 设置简单的列表项内容
        .setitems(items, new onclicklistener()
        {
          @override
          public void onclick(dialoginterface dialog, int which)
          {
            show.settext("你选中了《" + items[which] + "》");
          }
        });
    // 为alertdialog.builder添加“确定”按钮
    setpositivebutton(builder);
    // 为alertdialog.builder添加“取消”按钮
    setnegativebutton(builder)
        .create()
        .show();
  }

  public void singlechoice(view source)
  {
    alertdialog.builder builder = new alertdialog.builder(this)
        // 设置对话框标题
        .settitle("单选列表项对话框")
            // 设置图标
        .seticon(r.drawable.tools)
            // 设置单选列表项,默认选中第二项(索引为1)
        .setsinglechoiceitems(items, 1, new onclicklistener()
        {
          @override
          public void onclick(dialoginterface dialog, int which)
          {
            show.settext("你选中了《" + items[which] + "》");
          }
        });
      // 为alertdialog.builder添加“确定”按钮
      setpositivebutton(builder);
      // 为alertdialog.builder添加“取消”按钮
      setnegativebutton(builder)
        .create()
        .show();
  }

  public void multichoice(view source)
  {
    alertdialog.builder builder = new alertdialog.builder(this)
        // 设置对话框标题
        .settitle("多选列表项对话框")
            // 设置图标
        .seticon(r.drawable.tools)
            // 设置多选列表项,设置勾选第2项、第4项
        .setmultichoiceitems(items
            , new boolean[]{false , true ,false ,true}, null);
    // 为alertdialog.builder添加“确定”按钮
    setpositivebutton(builder);
    // 为alertdialog.builder添加“取消”按钮
    setnegativebutton(builder)
        .create()
        .show();
  }

  public void customlist(view source)
  {
    alertdialog.builder builder = new alertdialog.builder(this)
        // 设置对话框标题
        .settitle("自定义列表项对话框")
            // 设置图标
        .seticon(r.drawable.tools)
            // 设置自定义列表项
        .setadapter(new arrayadapter<string>(this
            , r.layout.array_item
            , items), null);
    // 为alertdialog.builder添加“确定”按钮
    setpositivebutton(builder);
    // 为alertdialog.builder添加“取消”按钮
    setnegativebutton(builder)
        .create()
        .show();
  }

  public void customview(view source)
  {
    // 装载app\src\main\res\layout\login.xml界面布局文件
    tablelayout loginform = (tablelayout)getlayoutinflater()
        .inflate( r.layout.login, null);
    new alertdialog.builder(this)
        // 设置对话框的图标
        .seticon(r.drawable.tools)
        // 设置对话框的标题
        .settitle("自定义view对话框")
        // 设置对话框显示的view对象
        .setview(loginform)
        // 为对话框设置一个“确定”按钮
        .setpositivebutton("登录", new onclicklistener() {
          @override
          public void onclick(dialoginterface dialog,
            int which) {
            // 此处可执行登录处理
          }
        })
        // 为对话框设置一个“取消”按钮
        .setnegativebutton("取消", new onclicklistener()
        {
          @override
          public void onclick(dialoginterface dialog,
                    int which)
          {
            // 取消登录,不做任何事情
          }
        })
        // 创建并显示对话框
        .create()
        .show();
  }


  private alertdialog.builder setpositivebutton(
      alertdialog.builder builder)
  {
    // 调用setpositivebutton方法添加“确定”按钮
    return builder.setpositivebutton("确定", new onclicklistener()
    {
      @override
      public void onclick(dialoginterface dialog, int which)
      {
        show.settext("单击了【确定】按钮!");
      }
    });
  }
  private alertdialog.builder setnegativebutton(
      alertdialog.builder builder)
  {
    // 调用setnegativebutton方法添加“取消”按钮
    return builder.setnegativebutton("取消", new onclicklistener()
    {
      @override
      public void onclick(dialoginterface dialog, int which)
      {
        show.settext("单击了【取消】按钮!");
      }
    });
  }
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

上一篇: SpringBoot使用Jsp的示例代码

下一篇: