android - 在运行时更改输入类型

标签 android input

我正在使用一个应用程序,在用户单击按钮后,系统会创建一个警报,要求用户提供电子邮件地址。此警报包含一个 EditText 和两个按钮。我想将此 EditText 的输入类型更改为在运行时键入电子邮件,但它不会更改。代码可以在下面找到。

编辑:setRawInputType 已更改为 setInputType。这现在将我的输入类型更改为电子邮件地址,但我的键盘实际上并没有随之改变。我是否遗漏了一些有关此工作方式的信息?

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

    alert.setTitle("Title");
    alert.setMessage("Email Address:");

    // Set an EditText view to get user input 
    final EditText input = new EditText(this);
    input.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
    alert.setView(input);

    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
      String value = input.getText().toString();;
      Intent i = new Intent(Intent.ACTION_SEND);
      i.setType("message/rfc822");
      i.putExtra(Intent.EXTRA_EMAIL  , value);
      i.putExtra(Intent.EXTRA_SUBJECT, "subject of email");
      i.putExtra(Intent.EXTRA_TEXT   , "body of email");
      try {
          startActivity(Intent.createChooser(i, "Send mail..."));
      } catch (android.content.ActivityNotFoundException ex) {
          Toast.makeText(getBaseContext(), "Please enter a valid number",
                    Toast.LENGTH_LONG).show();
      }
      }
    });

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

    alert.show();

最佳答案

我自己弄明白了这个问题后,弄乱了很多。为了实际更改输入类型,我必须使用以下内容:

input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);

关于android - 在运行时更改输入类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12283381/

相关文章:

javascript 或 jquery 仅输入文本数字并自动屏蔽

python - 如何在python中的字符串中插入变量值

android - 而是找到了 '1.8'。 Android 需要编译器合规级别 5.0 或 6.0。请使用 Android 工具 > 修复项目属性

java - 如何将可绘制对象分配给 ImageView

android - 下载 Android APK 扩展文件的应用程序语义

input - Slick 2.0 "returning"元素不适用于 H2 数据库

android - 使用 Android 使用 Microsoft Office 移动应用程序以编辑模式打开本地文件

java - 重影效应 : Two views on top of each other. 为什么?

arrays - 大小来自用户输入的数组

java - 如果用户使用键盘输入错误,如何再次调用该类