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

    你可能感兴趣的文章
    OSI七层模型的TCP/IP模型都有哪几层和他们的对应关系?
    查看>>
    OSI操作系统(NETBASE第八课)
    查看>>
    OSM数据如何下载使用(地图数据篇.11)
    查看>>
    OSPF 四种设备角色:IR、ABR、BR、ASBR
    查看>>
    OSPF 四种路由类型:Intra Area、Inter Area、第一、二类外部路由
    查看>>
    OSPF 学习
    查看>>
    OSPF 支持的网络类型:广播、NBMA、P2MP和P2P类型
    查看>>
    OSPF 概念型问题
    查看>>
    OSPF 的主要目的是什么?
    查看>>
    OSPF5种报文:Hello报文、DD报文、LSR报文、LSU报文和LSAck报文
    查看>>
    SQL Server 存储过程分页。
    查看>>
    OSPFv3:第三版OSPF除了支持IPv6,还有这些强大的特性!
    查看>>
    OSPF不能发现其他区域路由时,该怎么办?
    查看>>
    OSPF两个版本:OSPFv3与OSPFv2到底有啥区别?
    查看>>
    SQL Server 存储过程
    查看>>
    OSPF在什么情况下会进行Router ID的重新选取?
    查看>>
    OSPF在大型网络中的应用:高效路由与可扩展性
    查看>>
    OSPF太难了,这份OSPF综合实验请每位网络工程师查收,周末弯道超车!
    查看>>
    OSPF技术入门(第三十四课)
    查看>>
    OSPF技术连载10:OSPF 缺省路由
    查看>>