文档章节

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

飞雪无措
 飞雪无措
发布于 2015/02/26 22:37
字数 453
阅读 146
收藏 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
Android PopupWindow的使用

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

SRain215
2015/11/24
292
1
弹出输入对话框,无法获取到输入内容?获取到的EditText控件却为空。

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

mmdee
2017/02/14
329
2
alertDialog全解析

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

李文良
2015/11/25
37
0
常用的android提示对话框

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

长平狐
2012/08/28
734
0

没有更多内容

加载失败,请刷新页面

加载更多

如何通过 J2Cache 实现分布式 session 存储

做 Java Web 开发的人多数都会需要使用到 session (会话),我们使用 session 来保存一些需要在两个不同的请求之间共享数据。一般 Java 的 Web 容器像 Tomcat、Resin、Jetty 等等,它们会在...

红薯
今天
3
0
C++ std::thread

C++11提供了std::thread类来表示一个多线程对象。 1,首先介绍一下std::this_thread命名空间: (1)std::this_thread::get_id():返回当前线程id (2)std::this_thread::yield():用户接口...

yepanl
今天
3
0
Nignx缓存文件与动态文件自动均衡的配置

下面这段nginx的配置脚本的作用是,自动判断是否存在缓存文件,如果有优先输出缓存文件,不经过php,如果没有,则回到php去处理,同时生成缓存文件。 PHP框架是ThinkPHP,最后一个rewrite有关...

swingcoder
今天
2
0
20180920 usermod命令与用户密码管理

命令 usermod usermod 命令的选项和 useradd 差不多。 一个用户可以属于多个组,但是gid只有一个;除了gid,其他的组(groups)叫做扩展组。 usermod -u 1010 username # 更改用户idusermod ...

野雪球
今天
3
0
Java网络编程基础

1. 简单了解网络通信协议TCP/IP网络模型相关名词 应用层(HTTP,FTP,DNS等) 传输层(TCP,UDP) 网络层(IP,ICMP等) 链路层(驱动程序,接口等) 链路层:用于定义物理传输通道,通常是对...

江左煤郎
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部