【问题标题】:Changing input type at runtime在运行时更改输入类型
【发布时间】:2012-09-05 14:09:12
【问题描述】:

我正在使用一个应用程序,在用户单击按钮后,会创建一个警报,要求用户提供电子邮件地址。此警报包含一个 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();

【问题讨论】:

    标签: android input


    【解决方案1】:

    我在搞砸了很多之后自己想通了。为了实际更改输入类型,我必须使用以下内容:

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

    【讨论】:

      【解决方案2】:

      尝试使用setInputType 而不是setRawInputType

      请参阅文档here

      使用为 inputType 定义的常量设置内容的类型。这将通过调用 setKeyListener(KeyListener)

      来处理更改键侦听器

      而 raw 没有

      【讨论】:

      • 这也不起作用。我也刚刚尝试使用整数而不是“InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS”。这对这两个电话都不起作用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多