Android 在运行时更改输入类型
我正在使用一个应用程序,在用户单击按钮后,会创建一个警报,询问用户电子邮件地址。此警报包含一个EditText和两个按钮。我想将此EditText的输入类型更改为运行时键入电子邮件,但它没有更改。代码可以在下面找到 编辑:setRawInputType已更改为setInputType。这将我的输入类型更改为电子邮件地址,但我的键盘实际上并没有随之更改。我是不是遗漏了一些东西Android 在运行时更改输入类型,android,input,Android,Input,我正在使用一个应用程序,在用户单击按钮后,会创建一个警报,询问用户电子邮件地址。此警报包含一个EditText和两个按钮。我想将此EditText的输入类型更改为运行时键入电子邮件,但它没有更改。代码可以在下面找到 编辑:setRawInputType已更改为setInputType。这将我的输入类型更改为电子邮件地址,但我的键盘实际上并没有随之更改。我是不是遗漏了一些东西 AlertDialog.Builder alert = new AlertDialog.Builder(this)
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();
尝试使用
setInputType
而不是setRawInputType
见文件
使用为inputType定义的常量设置内容的类型。这将通过调用setKeyListener(KeyListener)来更改密钥侦听器
然而,raw并没有我自己在玩了很多之后才发现这一点。为了实际更改输入类型,我必须使用以下命令:
input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
这也没用。我也尝试过用整数代替“InputType.TYPE\u TEXT\u VARIATION\u EMAIL\u ADDRESS”。这两个电话都不行。