博客
关于我
Android|Dialog类理论篇(附实现用户登录对话框)
阅读量:172 次
发布时间:2019-02-28

本文共 3322 字,大约阅读时间需要 11 分钟。

Android对话框实现:从基础到实践

Android系统中对话框是开发中常用的UI组件之一。作为开发者,理解AlertDialog及其扩展组件的使用是必不可少的。本文将从理论到实践,带你深入了解Android对话框的实现方法。

Dialog类:对话框的基础

AlertDialog是Android中最常用的对话框组件之一。它不仅支持普通对话框,还可以创建带有列表、单选按钮、复选框等形式的对话框。AlertDialog的基类是Dialog类,这个类提供了对话框的基本功能,如显示、关闭等。

AlertDialog的功能

AlertDialog的功能非常丰富,主要包括以下几个方面:

  • 设置标题和图标:通过setTitle()和setIcon()方法可以设置对话框的标题和图标。
  • 设置消息内容:使用setMessage()方法可以设置对话框的提示信息。
  • 添加按钮:支持添加正向按钮(positive)和负向按钮(negative),通过setPositiveButton()和setNegativeButton()方法。
  • 设置列表项:通过setItems()方法可以设置对话框中的列表项。
  • 显示和关闭:通过show()和dismiss()方法可以控制对话框的显示和关闭。
  • 实践:创建用户登录对话框

    步骤一:创建新项目

    首先,创建一个新的Android项目。此时,在新项目中选择"Empty Activity"模板,配置好必要的设置。完成后,运行项目,确保可以正常显示"Hello World"。

    步骤二:上传资源文件

    将需要使用的图标文件(如xx.gif)复制到项目的drawable目录下,完成资源文件的准备工作。

    步骤三:设计主界面布局

    activity_main.xml中,添加两个按钮,用于打开不同的对话框。主界面布局如下:

    步骤四:创建对话框布局

    login.xml中,定义用户登录对话框的布局:

    步骤五:编写主界面代码

    DialogActivity.java中,实现按钮点击事件,打开对应的对话框:

    public class DialogActivity extends Activity implements View.OnClickListener {    Button btn1, btn2;    LinearLayout login;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        btn1 = (Button) findViewById(R.id.button1);        btn2 = (Button) findViewById(R.id.button2);        btn1.setOnClickListener(this);        btn2.setOnClickListener(this);    }    @Override    public void onClick(View arg0) {        if (arg0 == btn1) {            // 打开普通对话框            AlertDialog.Builder dialog = new AlertDialog.Builder(DialogActivity.this);            dialog.setTitle("警告");            dialog.setIcon(R.drawable.xx);            dialog.setMessage("本项操作可能导致信息泄露!");            dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {                @Override                public void onClick(DialogInterface dialog, int which) {                    dialog.cancel();                }            });            dialog.create();            dialog.show();        } else if (arg0 == btn2) {            // 打开登录对话框            login = (LinearLayout) getLayoutInflater().inflate(R.layout.login, null);            AlertDialog.Builder dialog = new AlertDialog.Builder(DialogActivity.this);            dialog.setTitle("用户登录");            dialog.setMessage("请输入用户名和密码");            dialog.setView(login);            dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {                @Override                public void onClick(DialogInterface dialog, int which) {                    EditText txt = (EditText) login.findViewById(R.id.paswdEdit);                    String password = txt.getText().toString();                    if (password.equals("admin")) {                        Toast.makeText(DialogActivity.this, "登录成功", Toast.LENGTH_SHORT).show();                    } else {                        Toast.makeText(DialogActivity.this, "密码错误", Toast.LENGTH_SHORT).show();                    }                    dialog.dismiss();                }            });            dialog.setIcon(R.drawable.xx);            dialog.create();            dialog.show();        }    }}

    步骤六:运行测试

    运行项目,点击主界面上的按钮,可以分别打开普通对话框和登录对话框。登录对话框支持用户输入用户名和密码,输入正确(用户名:admin,密码:admin)即可登录成功。

    总结

    通过以上步骤,你学会了如何在Android中使用AlertDialog创建用户登录对话框。从创建项目、布局设计到代码实现,每一步都需要细致处理。希望本文能为你的Android开发之路提供帮助!

    转载地址:http://fsrd.baihongyu.com/

    你可能感兴趣的文章
    Openlayers高级交互(14/20):汽车移动轨迹动画(开始、暂停、结束)
    查看>>
    Openlayers高级交互(15/20):显示海量多边形,10ms加载完成
    查看>>
    Openlayers高级交互(16/20):两个多边形的交集、差集、并集处理
    查看>>
    Openlayers高级交互(17/20):通过坐标显示多边形,计算出最大幅宽
    查看>>
    Openlayers高级交互(18/20):根据feature,将图形适配到最可视化窗口
    查看>>
    Openlayers高级交互(19/20): 地图上点击某处,列表中显示对应位置
    查看>>
    Openlayers高级交互(2/20):清除所有图层的有效方法
    查看>>
    Openlayers高级交互(20/20):超级数据聚合,页面不再混乱
    查看>>
    Openlayers高级交互(3/20):动态添加 layer 到 layerGroup,并动态删除
    查看>>
    Openlayers高级交互(4/20):手绘多边形,导出KML文件,可以自定义name和style
    查看>>
    Openlayers高级交互(5/20):右键点击,获取该点下多个图层的feature信息
    查看>>
    Openlayers高级交互(6/20):绘制某点,判断它是否在一个电子围栏内
    查看>>
    Openlayers高级交互(7/20):点击某点弹出窗口,自动播放视频
    查看>>
    Openlayers高级交互(8/20):选取feature,平移feature
    查看>>
    Openlayers高级交互(9/20):编辑图形(放缩、平移、变形、旋转),停止编辑
    查看>>
    Openlayers:DMS-DD坐标形式互相转换
    查看>>
    openlayers:圆孔相机根据卫星经度、纬度、高度、半径比例推算绘制地面的拍摄的区域
    查看>>
    OpenLDAP(2.4.3x)服务器搭建及配置说明
    查看>>
    OpenLDAP编译安装及配置
    查看>>
    Openmax IL (二)Android多媒体编解码Component
    查看>>