带有电子邮件输入类型的EditText的AlertDialog - Android

5

我正在创建一个带有一个EditText的警报对话框。我想让EditText具有电子邮件输入类型。这是我的代码:

AlertDialog.Builder alert = new AlertDialog.Builder(this);

alert.setMessage("Enter your email");

final EditText email = new EditText(this);
email.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
email.setHint("Email...");

alert.setView(email);

alert.setPositiveButton("Ok", null);

alert.setNegativeButton("Cancel", null);

alert.show();

我也给这个EditText设置了提示,它可以工作,但是输入类型没有生效......有什么建议吗?


你的 EditText 出现了吗? - Hamid Shatu
是的,它显示出来了。提示也有效...但输入类型不行 :/ - KiKo
别忘了你的 i18n 东西 ;) - JakeWilson801
1个回答

8
你需要添加以下代码才能使它正常工作:
email.setInputType(InputType.TYPE_CLASS_TEXT 
          | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);

请参阅InputTypeTYPE_TEXT_VARIATION_EMAIL_ADDRESS基本上只是一种变化,您可以将其添加到 TYPE_CLASS_TEXT 标志中。这在某种程度上是有意义的。

谢谢,它可以工作了,但我能问一下为什么需要添加InputType.TYPE_CLASS_TEXT |吗? 顺便说一句,如果我想要数字EditText,我也需要添加InputType.TYPE_CLASS_TEXT |吗? - KiKo
你实际上不是必须先创建构建器然后再显示它吗? - Kostas Drak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接