博客
关于我
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/

    你可能感兴趣的文章
    OpenCV 错误:(-215)size.width>0 &&函数imshow中的size.height>0
    查看>>
    opencv&Python——多种边缘检测
    查看>>
    opencv&python——高通滤波器和低通滤波器
    查看>>
    OpenCV+Python识别车牌和字符分割的实现
    查看>>
    OpenCV-Python接口、cv和cv2的性能比较
    查看>>
    OpenCV/Python/dlib眨眼检测
    查看>>
    opencv1-加载、修改、保存图像
    查看>>
    opencv10-形态学操作
    查看>>
    opencv11-提取水平直线和垂直直线
    查看>>
    opencv12-图像金字塔
    查看>>
    opencv13-基本阈值操作
    查看>>
    opencv14-自定义线性滤波
    查看>>
    opencv15-边缘处理
    查看>>
    opencv16-Sobel算子
    查看>>
    opencv17-laplance算子
    查看>>
    opencv18-canny检测算法
    查看>>
    opencv19-霍夫直线变化
    查看>>
    opencv2-矩阵掩膜操作
    查看>>
    opencv20-霍夫圆检测
    查看>>
    opencv21-像素重映射
    查看>>