java–Android无法在Dialog中获取EditText getText().toString()

java–Android无法在Dialog中获取EditText getText().toString(),第1张

概述我正在尝试在单个类中创建自定义对话框.该对话框在主活动中启动:DialogLoginlogin=newDialogLogin();login.show(getFragmentManager(),DISPLAY_SERVICE);在启动应用程序时,主活动在后台启动,然后对话框启动.在对话框中有一个EditText字段来接收用户输入

我正在尝试在单个类中创建自定义对话框.该对话框在主活动中启动:

        DialogLogin login = new DialogLogin();        login.show(getFragmentManager(), disPLAY_SERVICE);

在启动应用程序时,主活动在后台启动,然后对话框启动.
在对话框中有一个EditText字段来接收用户输入.按下保存按钮时,应读出EditText字段并显示输入,但它始终为空.此外,LogCat中没有错误……我尝试了许多相同问题的解决方案,但没有任何效果.我希望有人有一个有效的解决方案! =)

import androID.app.AlertDialog;import androID.app.Dialog;import androID.app.DialogFragment;import androID.content.DialogInterface;import androID.os.Bundle;import androID.vIEw.LayoutInflater;import androID.vIEw.VIEw;import androID.Widget.EditText;public class DialogLogin extends DialogFragment {String androIDID;LayoutInflater inflater;public Dialog onCreateDialog(Bundle savedInstanceState) {    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());    inflater = getActivity().getLayoutInflater();    builder.setMessage(R.string.loginMessage)            .setTitle(R.string.login)            .setVIEw(inflater.inflate(R.layout.loginlayout, null))            .setPositivebutton(R.string.speichern,                    new DialogInterface.OnClickListener() {                        public voID onClick(DialogInterface dialog, int ID) {                            System.out.println("LOGIN");                            VIEw v = inflater.inflate(R.layout.loginlayout, null);                            EditText text = (EditText) v.findVIEwByID(R.ID.loginEdit);                            System.out.println(text.getText().toString()); //displays nothing                            System.out.println(text.length());              //is 0                        }                    });    return builder.create();}

}

和loginlayout.xml:

<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"androID:layout_wIDth="match_parent"androID:layout_height="match_parent"androID:orIEntation="vertical" ><EditText    androID:ID="@+ID/loginEdit"    androID:inputType="text"    androID:layout_wIDth="match_parent"    androID:layout_height="wrap_content"    androID:ems="10"    androID:hint="@string/editText" ></EditText></linearLayout>

解决方法:

您正在为新布局进行充气,其中EditText中没有文本.您只需要对布局进行一次充气,并保留对它的引用.

final VIEw vIEw = inflater.inflate(R.layout.loginlayout, null);/* ... */.setVIEw(vIEw)/* ... */EditText text = (EditText) vIEw.findVIEwByID(R.ID.loginEdit);
总结

以上是内存溢出为你收集整理的java – Android无法在Dialog中获取EditText getText().toString()全部内容,希望文章能够帮你解决java – Android无法在Dialog中获取EditText getText().toString()所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1110250.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存