文档章节

获取由 AlertDialog 生成的对话框中EditText的文本内容

飞雪无措
 飞雪无措
发布于 2015/02/26 22:37
字数 453
阅读 205
收藏 0

    在Android开发中,AlertDialog常用于处理用户的登录等。那么如何获取由 AlertDialog 生成的对话框中EditText的文本内容呢?

    其实Alertdialog弹出的Activity 可以认为是默认的Activity的子Activity。不能直接使用findViewById()来获取。强行使用会提示一个空指针的错误,我们只需要加上  Alertdialog弹出的Activity.findViewById()就可以获取我们想要的EditText对象了。

关键代码如下:

 /**  Activity01.java  **/
 
 public String strUsername = "";
 
 LayoutInflater factory = LayoutInflater.from(Activity01.this);
 //得到自定义对话框
 final View DialogView = factory.inflate(R.layout.dialog, null);
 //创建对话框
 AlertDialog dlg = new AlertDialog.Builder(Activity01.this)
     .setTitle("登录框")
     .setView(DialogView)//设置自定义对话框的样式
     .setPositiveButton("确定", //设置"确定"按钮
         new DialogInterface.OnClickListener() //设置事件监听
         {
             public void onClick(DialogInterface dialog, int whichButton) {
                //输入后点击“确定”,开始获取我们要的内容 DialogView就是AlertDialog弹出的Activity
                 EditText edtUserName = (EditText)DialogView.findViewById(R.id.username);
                 strUserName = edtUserName.getText().toString();
             }
         })
     .setNegativeButton("取消", //设置“取消”按钮
         new DialogInterface.OnClickListener() 
         {
             public void onClick(DialogInterface dialog, int whichButton) {
             //点击"取消"按钮之后退出程序
                 Activity01.this.finish();
             }
         })
     .create();//创建弹出框
 dlg.show();//显示
 
 
 
 /**  dialog.xml  **/
 
 
 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <TextView 
        android:id="@+id/usernamet"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:text="账号"
        android:gravity="left"
        android:textAppearance="?android:attr/textAppearanceMedium" />
            
    <EditText
        android:id="@+id/username"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:scrollHorizontally="true"
        android:autoText="false"
        android:capitalize="none"
        android:gravity="fill_horizontal"
        android:textAppearance="?android:attr/textAppearanceMedium"/>

    <TextView
        android:id="@+id/passwordt"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:text="密码"
        android:gravity="left"
        android:textAppearance="?android:attr/textAppearanceMedium" />
            
    <EditText
        android:id="@+id/password"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:scrollHorizontally="true"
        android:autoText="false"
        android:capitalize="none"
        android:gravity="fill_horizontal"
        android:password="true"
        android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>


© 著作权归作者所有

共有 人打赏支持
飞雪无措
粉丝 2
博文 8
码字总数 908
作品 0
长沙
技术主管
私信 提问
Android的UI界面

1.android中我们常用控件TextView,用android:gravity 来指定文字的对齐方式, 通过 android:textSize 属性可以指定文字的大小,通过 android:textColor 属性可以指定文 字的颜色。 2.Button 是...

西红柿的眼泪
2016/07/16
11
0
弹出输入对话框,无法获取到输入内容?获取到的EditText控件却为空。

为什么我的弹出输入对话框,无法获取到输入内容?获取到的EditText控件却为空。 布局文件layout/alert.xml

mmdee
2017/02/14
329
2
Android PopupWindow的使用

下面是一个弹出带ListView和TextView的PopupWindow实例: 这是弹出框的布局文件: style中添加: drawable中添加dialogenter.xml和dialogexit.xml: 补充: 在用PopupWindow实现底部弹出菜单的...

SRain215
2015/11/24
292
1
android中常用的弹出提示框

我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能...

长平狐
2012/08/28
1K
0
alertDialog全解析

Android 对话框(Dialog)大全 建立你自己的对话框   Activities提供了一种方便管理的创建、保存、回复的对话框机制,例如 , , , 当你准备关闭对话框时,你可以通过对这个对话框调用dismiss...

李文良
2015/11/25
37
0

没有更多内容

加载失败,请刷新页面

加载更多

Redis分布式锁的实现原理看这篇就够了~

一、写在前面 现在面试,一般都会聊聊分布式系统这块的东西。通常面试官都会从服务框架(Spring Cloud、Dubbo)聊起,一路聊到分布式事务、分布式锁、ZooKeeper等知识。 所以咱们这篇文章就来...

Java干货分享
19分钟前
2
0
Actor并发编程模型浅析

一.Actor模型介绍 在单核 CPU 发展已经达到一个瓶颈的今天,要增加硬件的速度更多的是增加 CPU 核的数目。而针对这种情况,要使我们的程序运行效率提高,那么也应该从并发方面入手。传统的多...

终日而思一
19分钟前
1
0
利用arthas实时定位线上性能问题

0. 场景及需求 我们线上5台solr读服务器,配置一样,但是相同的请求,其中一台响应时间明显比其他4台慢,我们想通过arthas来定位具体哪里执行慢。 1. arthas介绍 阿里开源的java调试工具,能...

andersChow
21分钟前
2
0
docker 启动策略

Docker run的时候使用--restart参数 no - Container不重启 on-failure - container推出状态非0时重启 always - 始终重启 例如: docker run --restart=always -itd -p 2222:22 -p 3306:3306......

colin_86
21分钟前
1
0
Thinkphp5开发OA办公系统之招聘申请

开发运行环境: 神舟笔记本K650D-G6D1 i5-6400 GTX950M Windows 10 专业版 Nginx 或 Apache Web 服务器软件 MySQL5.7.x 数据库 PHP7.1.0 PHPStrom 2017 PowerDesigner 16.5 Axure RP8 原型设......

乐兔CRM
23分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部