获取由 AlertDialog 生成的对话框中EditText的文本内容
获取由 AlertDialog 生成的对话框中EditText的文本内容
飞雪无措 发表于3年前
获取由 AlertDialog 生成的对话框中EditText的文本内容
  • 发表于 3年前
  • 阅读 54
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

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

    在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>


标签: android AlertDialog
共有 人打赏支持
粉丝 3
博文 4
码字总数 737
×
飞雪无措
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: