我想现在还没有简单的方法来进行像您的准确设置。 Delphi和java vk类型映射在fmx.dex.jar库中实现,默认情况下与每个FMX Android项目一起嵌入。
但是,对于目前的用途,您可以将KeyboardType设置为EmailAddress,将其转换为TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_EMAIL_ADDRESS组合。这将是Android的最佳决策。
以下是所有的映射。
在Android有TVirtualKeyboardType值和TJFMXTextEditorProxy.JavaClass常数(见FMX.Platform.Android)之间的以下映射:TJFMXTextEditorProxy.JavaClass常数和android.text.InputType之间
case VirtKBControl.KeyboardType of
TVirtualKeyboardType.Default:
KbType := TJFMXTextEditorProxy.JavaClass.INPUT_TEXT;
TVirtualKeyboardType.NumbersAndPunctuation:
KbType := TJFMXTextEditorProxy.JavaClass.INPUT_NUMBER_AND_PUNCTUATION;
TVirtualKeyboardType.NumberPad:
KbType := TJFMXTextEditorProxy.JavaClass.INPUT_NUMBER;
TVirtualKeyboardType.PhonePad:
KbType := TJFMXTextEditorProxy.JavaClass.INPUT_PHONE;
TVirtualKeyboardType.Alphabet:
KbType := TJFMXTextEditorProxy.JavaClass.INPUT_ALPHABET;
TVirtualKeyboardType.URL:
KbType := TJFMXTextEditorProxy.JavaClass.INPUT_URL;
TVirtualKeyboardType.NamePhonePad:
KbType := TJFMXTextEditorProxy.JavaClass.INPUT_NAME_PHONE_PAD;
TVirtualKeyboardType.EmailAddress:
KbType := TJFMXTextEditorProxy.JavaClass.INPUT_EMAIL_ADDRESS;
end;
映射是以下(它在fmx.dex.jar中):
switch (mInputType) {
case INPUT_NUMBER:
outAttrs.inputType = InputType.TYPE_CLASS_NUMBER;
break;
case INPUT_NUMBER_AND_PUNCTUATION:
outAttrs.inputType = InputType.TYPE_CLASS_TEXT;
break;
case INPUT_PHONE:
outAttrs.inputType = InputType.TYPE_CLASS_PHONE;
break;
case INPUT_ALPHABET:
outAttrs.inputType = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS;
if (!mPassword)
outAttrs.inputType |= InputType.TYPE_TEXT_FLAG_CAP_SENTENCES;
break;
case INPUT_URL:
outAttrs.inputType = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_URI;
break;
case INPUT_NAME_PHONE_PAD:
outAttrs.inputType = InputType.TYPE_CLASS_PHONE;
if (!mPassword)
outAttrs.inputType |= InputType.TYPE_TEXT_FLAG_CAP_SENTENCES;
break;
case INPUT_EMAIL_ADDRESS:
outAttrs.inputType = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS;
break;
case INPUT_TEXT:
default:
outAttrs.inputType = InputType.TYPE_CLASS_TEXT;
if (!mPassword)
outAttrs.inputType |= InputType.TYPE_TEXT_FLAG_CAP_SENTENCES;
break;
}
if (mPassword)
{
if ((outAttrs.inputType & InputType.TYPE_CLASS_NUMBER) == InputType.TYPE_CLASS_NUMBER)
outAttrs.inputType |= InputType.TYPE_NUMBER_VARIATION_PASSWORD;
else
outAttrs.inputType |= InputType.TYPE_TEXT_VARIATION_PASSWORD;
}
Machado,你用firemonkey进行Android编程?...我需要帮助 –