当前位置: 移动技术网 > IT编程>移动开发>Android > Android AlertDialog对话框详解及实例

Android AlertDialog对话框详解及实例

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

权力的游戏第六季西瓜影音,宣州教育信息网,河南省平顶山市

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("单击了【取消】按钮!");
      }
    });
  }
}

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网