Android 多种dialog的实现方法(推荐),android 全局dialog

5
回复
991
查看
[复制链接]

443

主题

1203

帖子

1948

安币

手工艺人

发表于 2018-3-1 12:05:18 | 显示全部楼层 |阅读模式

            

        要求:设计如下界面,包括图片按钮、复选按钮、单选按钮、普通按钮,单击按钮弹出对话框,运行效果如下:

        

20180129120324.jpg

        

20180129120349.jpg

        

20180129120400.jpg

        

20180129120419.jpg

        string.xml文件源代码:

[Java] 查看源文件 复制代码
<resources>
  <string name="app_name">多种弹出对话框</string>
  <string name="dialog_img">图片按钮</string>
  <string name="dialog_radio">单选按钮</string>
  <string name="dialog_box">复选按钮</string>
  <string name="close">关闭</string>
</resources>

        

        布局文件源代码:

[Java] 查看源文件 复制代码
<

        java文件源代码:

[Java] 查看源文件 复制代码
package com.example.shiyan1_4;
import android.app.dialog;
import android.content.dialoginterface;
import android.preference.dialogpreference;
import android.support.v7.app.alertdialog;
import android.support.v7.app.appcompatactivity;
import android.os.bundle;
import android.view.view;
import android.widget.button;
import android.widget.checkbox;
import android.widget.edittext;
import android.widget.imageview;
import android.widget.radiobutton;
import android.widget.radiogroup;
import static android.r.attr.id;
public class shiyan1_4activity extends appcompatactivity {
  @override
  protected void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.activity_shiyan1_4);
    imageview img = (imageview) findviewbyid(r.id.img);
    button button1 = (button) findviewbyid(r.id.button1);
    button button2 = (button) findviewbyid(r.id.button2);
    img.setonclicklistener(new view.onclicklistener() {
      @override
      public void onclick(view v) {
        alertdialog.builder dialog1 = new alertdialog.builder(shiyan1_4activity.this);
        dialog1.settitle(r.string.dialog_img)
            .setmessage("您点击了图片按钮!")
            .setnegativebutton(r.string.close, null)
            .create()
            .show();
      }
    });
    button1.setonclicklistener(new view.onclicklistener() {
      @override
      public void onclick(view v) {
        alertdialog.builder dialog1 = new alertdialog.builder(shiyan1_4activity.this);
        string str1 = "";
        //获取复选按钮的值
        checkbox checkbox1 = (checkbox)findviewbyid(r.id.checkbox1);
        if(checkbox1.ischecked()){
          str1 += checkbox1.gettext() + "is selected !";
        }
        checkbox checkbox2 = (checkbox)findviewbyid(r.id.checkbox2);
        if(checkbox2.ischecked()){
          str1 += checkbox2.gettext() + " is selected !\n";
        }
        dialog1.settitle(r.string.dialog_box)
            .setmessage(str1)
            .setnegativebutton(r.string.close, null)
            .create()
            .show();
      }
    });
    button2.setonclicklistener(new view.onclicklistener() {
      @override
      public void onclick(view v) {
        alertdialog.builder dialog2 = new alertdialog.builder(shiyan1_4activity.this);
        string str2 = "";
        //获取单选按钮的值
        radiogroup radiogroup = (radiogroup)findviewbyid(r.id.radiogroup);
        for (int i = 0; i <radiogroup.getchildcount(); i++){
          radiobutton radiobutton = (radiobutton) radiogroup.getchildat(i);
          if(radiobutton.ischecked()){
            str2 += radiobutton.gettext() + " is selected !";
            break;
          }
        }
        dialog2.settitle(r.string.dialog_radio)
            .setmessage(str2)
            .setnegativebutton(r.string.close, null)
            .create()
            .show();
      }
    });
  }
}



        

21

主题

9536

帖子

2036

安币

Android大神

Rank: 6Rank: 6

发表于 2018-3-2 13:06:04 | 显示全部楼层
安卓巴士是个不错的网站,我来顶个贴~

14

主题

1万

帖子

3891

安币

码皇(巴士元老)

Rank: 8Rank: 8

发表于 2018-3-3 11:52:27 | 显示全部楼层
每次我都积极回帖的,想要安币~

11

主题

9474

帖子

972

安币

代码手工艺人

Rank: 4

发表于 2018-3-4 12:53:30 | 显示全部楼层
安卓巴士是个不错的网站,我来顶个贴~

0

主题

1万

帖子

2395

安币

Android大神

Rank: 6Rank: 6

发表于 2018-3-5 10:09:25 | 显示全部楼层
支持楼主,支持安卓巴士!

0

主题

19

帖子

127

安币

程序猿

Rank: 2

QQ
发表于 2019-11-8 15:08:15 | 显示全部楼层
这个不能算全局吧,离开activity怎么传值呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

领先的中文移动开发者社区
18620764416
7*24全天服务
意见反馈:1294855032@qq.com

扫一扫关注我们

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粤ICP备15117877号 )