Android - 自定义对话框 - 无法从 EditText 获取文本

标签 android dialog android-edittext

我的自定义对话框有问题。
我的对话框由 TextViewEditText 和“Ok”按钮组成。单击“确定”后,它应该从 EditText 字段中获取文本并将其分配给 Activity 中定义的字符串变量“名称”。
一切似乎都正常,没有错误等,但是“文本”始终是一个空字符串。
我阅读了一些有关此类问题的主题,但是我不确定我应该在这里进行哪些调整。
我对 Android 编程很陌生,所以如果有人能向我解释这个问题,我将不胜感激。提前致谢。

     final Dialog dialog = new Dialog(MyActivity.this);
     dialog.setContentView(R.layout.custom_dialog);
     dialog.setTitle("Title");

     final View layout = View.inflate(this, R.layout.custom_dialog, null);
     Button button = (Button) dialog.findViewById(R.id.dialog_ok);
     button.setOnClickListener(new OnClickListener() {
         public void onClick(View v) {
                EditText edit=(EditText)layout.findViewById(R.id.dialog_edit);
                String text=edit.getText().toString();

                name=text;

                dialog.dismiss();
         }
     });   

     dialog.show();

最佳答案

如果您想将 xml 文件膨胀到对话框中以创建自定义版本,您可以使用以下代码从用户那里获取两个输入

LayoutInflater linf = LayoutInflater.from(this);            
final View inflator = linf.inflate(R.layout.twoinputs, null);
AlertDialog.Builder alert = new AlertDialog.Builder(this); 

alert.setTitle("Tilte"); 
alert.setMessage("Message"); 
alert.setView(inflator); 

final EditText et1 = (EditText) inflator.findViewById(R.id.editText1);
final EditText et2 = (EditText) inflator.findViewById(R.id.editText2);

alert.setPositiveButton("ok", new DialogInterface.OnClickListener() { 
   public void onClick(DialogInterface dialog, int whichButton) 
   { 
          String s1=et1.getText().toString();
          String s2=et2.getText().toString();
          //do operations using s1 and s2 here...
   } 
}); 

alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
   public void onClick(DialogInterface dialog, int whichButton) { 
            dialog.cancel(); 
   } 
}); 

alert.show(); 

关于Android - 自定义对话框 - 无法从 EditText 获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6626006/

相关文章:

axapta - 如何在 Axe 2012 中重命名对话框按钮或创建新按钮?

Android:扩展EditText的inputType?

java - 如何从我在android中的应用程序启动另一个应用程序

java - 如何在用户按下 imageButton 之间添加延迟?

android - Android 可以使用标准构建的 JAR 文件吗?

java - 如何使用对话框更改 listView 中 TextView 的文本

android - 在运行 Android 11 的摩托罗拉设备上打开键盘时应用程序崩溃

javascript - 如果 <div> 不为空,则显示 jQuery-ui 对话框

java - 单击任何 ListView 项目时,将该项目文本显示到 EditText 中

android - 获取Textview中一行可以有多少个字符