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

    你可能感兴趣的文章
    Objective-C实现memoization优化技术算法(附完整源码)
    查看>>
    Objective-C实现memset函数功能(附完整源码)
    查看>>
    Objective-C实现merge insertion sort合并插入排序算法(附完整源码)
    查看>>
    Objective-C实现merge sort归并排序算法(附完整源码)
    查看>>
    Objective-C实现mergesort归并排序算法(附完整源码)
    查看>>
    Objective-C实现MidpointIntegration中点积分算法 (附完整源码)
    查看>>
    Objective-C实现miller rabin米勒-拉宾素性检验算法(附完整源码)
    查看>>
    Objective-C实现Miller-Rabin素性测试程序(附完整源码)
    查看>>
    Objective-C实现Miller-Rabin素性测试程序(附完整源码)
    查看>>
    Objective-C实现MinhashLSH算法(附完整源码)
    查看>>
    Objective-C实现MinhashLSH算法(附完整源码)
    查看>>
    Objective-C实现MinHeap最小堆算法(附完整源码)
    查看>>
    Objective-C实现minimum coin change最小硬币找零算法(附完整源码)
    查看>>
    Objective-C实现minimum cut最小切割流算法(附完整源码)
    查看>>
    Objective-C实现minimum partition最小分区算法(附完整源码)
    查看>>
    Objective-C实现Minimum Priority Queu最小优先级队列算法(附完整源码)
    查看>>
    Objective-C实现Minimum Vertex Cover最小顶点覆盖算法(附完整源码)
    查看>>
    Objective-C实现modular Binary Exponentiation模二进制指数算法 (附完整源码)
    查看>>
    Objective-C实现modular exponential模指数算法(附完整源码)
    查看>>
    Objective-C实现monte carlo蒙特卡罗算法(附完整源码)
    查看>>