我正在尝试在单个类中创建自定义对话框.该对话框在主活动中启动:
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()所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)