下面列出了android.text.InputType#TYPE_CLASS_DATETIME 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public int getAndroidInputType () {
if (matchType (HtmlInput.TYPE_PASSWORD))
return InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_VARIATION_PASSWORD;
else if (matchType (HtmlInput.TYPE_EMAIL))
return InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS;
else if (matchType (TYPE_TEXT))
return InputType.TYPE_CLASS_TEXT;
else if (matchType (TYPE_NUMBER))
return InputType.TYPE_CLASS_NUMBER;
else if (matchType (TYPE_TEL))
return InputType.TYPE_CLASS_NUMBER;
else if (matchType (TYPE_DATE))
return InputType.TYPE_CLASS_DATETIME|InputType.TYPE_DATETIME_VARIATION_DATE;
else if (matchType (TYPE_DATETIME) |matchType (TYPE_DATETIME_LOCAL))
return InputType.TYPE_CLASS_DATETIME;
else if (matchType (TYPE_TIME))
return InputType.TYPE_CLASS_DATETIME|InputType.TYPE_DATETIME_VARIATION_TIME;
return 0;
}
@Override
public void setRawInputType(int type) {
Log.e(this.getClass().getSimpleName(), "Type : "+type);
switch (type) {
case InputType.TYPE_DATETIME_VARIATION_TIME|InputType.TYPE_CLASS_DATETIME:
setupTimePicker();
break;
case InputType.TYPE_DATETIME_VARIATION_DATE|InputType.TYPE_CLASS_DATETIME:
setupDatePicker();
break;
case InputType.TYPE_CLASS_DATETIME:
setupDateTimePicker();
break;
default:
calendar = null;
super.setRawInputType(type);
}
}
@Bindable
public String getValueText() {
if ((mEnumeratedRule.getInputType() & InputType.TYPE_CLASS_DATETIME) != 0) {
long dateAsUnixTimestamp;
try {
dateAsUnixTimestamp = Long.parseLong(mFactory.getValue()) * 1000;
} catch (NumberFormatException e) {
dateAsUnixTimestamp = System.currentTimeMillis();
}
int flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR;
Formatter date = DateUtils.formatDateRange(mContext, new Formatter(),
dateAsUnixTimestamp, dateAsUnixTimestamp, flags, "UTC");
return date.toString();
} else {
return mFactory.getValue();
}
}
public int getInputType() {
if (mNeedsAdvancedInput) {
return InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_NORMAL;
} else {
return InputType.TYPE_CLASS_DATETIME | InputType.TYPE_DATETIME_VARIATION_TIME;
}
}
private static String toVariationString(final int inputClass, final int variation) {
switch (inputClass) {
case InputType.TYPE_CLASS_TEXT:
return toTextVariationString(variation);
case InputType.TYPE_CLASS_NUMBER:
return toNumberVariationString(variation);
case InputType.TYPE_CLASS_DATETIME:
return toDatetimeVariationString(variation);
default:
return "";
}
}
public int getInputType() {
if (mNeedsAdvancedInput) {
return InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_NORMAL;
} else {
return InputType.TYPE_CLASS_DATETIME | InputType.TYPE_DATETIME_VARIATION_NORMAL;
}
}
private static String toInputClassString(final int inputClass) {
switch (inputClass) {
case InputType.TYPE_CLASS_TEXT:
return "TYPE_CLASS_TEXT";
case InputType.TYPE_CLASS_PHONE:
return "TYPE_CLASS_PHONE";
case InputType.TYPE_CLASS_NUMBER:
return "TYPE_CLASS_NUMBER";
case InputType.TYPE_CLASS_DATETIME:
return "TYPE_CLASS_DATETIME";
default:
return String.format("unknownInputClass<0x%08x>", inputClass);
}
}
private static String toVariationString(final int inputClass, final int variation) {
switch (inputClass) {
case InputType.TYPE_CLASS_TEXT:
return toTextVariationString(variation);
case InputType.TYPE_CLASS_NUMBER:
return toNumberVariationString(variation);
case InputType.TYPE_CLASS_DATETIME:
return toDatetimeVariationString(variation);
default:
return "";
}
}
private static int getKeyboardMode(final EditorInfo editorInfo) {
final int inputType = editorInfo.inputType;
final int variation = inputType & InputType.TYPE_MASK_VARIATION;
switch (inputType & InputType.TYPE_MASK_CLASS) {
case InputType.TYPE_CLASS_NUMBER:
return KeyboardId.MODE_NUMBER;
case InputType.TYPE_CLASS_DATETIME:
switch (variation) {
case InputType.TYPE_DATETIME_VARIATION_DATE:
return KeyboardId.MODE_DATE;
case InputType.TYPE_DATETIME_VARIATION_TIME:
return KeyboardId.MODE_TIME;
default: // InputType.TYPE_DATETIME_VARIATION_NORMAL
return KeyboardId.MODE_DATETIME;
}
case InputType.TYPE_CLASS_PHONE:
return KeyboardId.MODE_PHONE;
case InputType.TYPE_CLASS_TEXT:
if (InputTypeUtils.isEmailVariation(variation)) {
return KeyboardId.MODE_EMAIL;
} else if (variation == InputType.TYPE_TEXT_VARIATION_URI) {
return KeyboardId.MODE_URL;
} else if (variation == InputType.TYPE_TEXT_VARIATION_SHORT_MESSAGE) {
return KeyboardId.MODE_IM;
} else if (variation == InputType.TYPE_TEXT_VARIATION_FILTER) {
return KeyboardId.MODE_TEXT;
} else {
return KeyboardId.MODE_TEXT;
}
default:
return KeyboardId.MODE_TEXT;
}
}
private static int getKeyboardMode(final EditorInfo editorInfo) {
final int inputType = editorInfo.inputType;
final int variation = inputType & InputType.TYPE_MASK_VARIATION;
switch (inputType & InputType.TYPE_MASK_CLASS) {
case InputType.TYPE_CLASS_NUMBER:
return KeyboardId.MODE_NUMBER;
case InputType.TYPE_CLASS_DATETIME:
switch (variation) {
case InputType.TYPE_DATETIME_VARIATION_DATE:
return KeyboardId.MODE_DATE;
case InputType.TYPE_DATETIME_VARIATION_TIME:
return KeyboardId.MODE_TIME;
default: // InputType.TYPE_DATETIME_VARIATION_NORMAL
return KeyboardId.MODE_DATETIME;
}
case InputType.TYPE_CLASS_PHONE:
return KeyboardId.MODE_PHONE;
case InputType.TYPE_CLASS_TEXT:
if (InputTypeUtils.isEmailVariation(variation)) {
return KeyboardId.MODE_EMAIL;
} else if (variation == InputType.TYPE_TEXT_VARIATION_URI) {
return KeyboardId.MODE_URL;
} else if (variation == InputType.TYPE_TEXT_VARIATION_SHORT_MESSAGE) {
return KeyboardId.MODE_IM;
} else if (variation == InputType.TYPE_TEXT_VARIATION_FILTER) {
return KeyboardId.MODE_TEXT;
} else {
return KeyboardId.MODE_TEXT;
}
default:
return KeyboardId.MODE_TEXT;
}
}
private static int getKeyboardMode(final EditorInfo editorInfo) {
final int inputType = editorInfo.inputType;
final int variation = inputType & InputType.TYPE_MASK_VARIATION;
switch (inputType & InputType.TYPE_MASK_CLASS) {
case InputType.TYPE_CLASS_NUMBER:
return KeyboardId.MODE_NUMBER;
case InputType.TYPE_CLASS_DATETIME:
switch (variation) {
case InputType.TYPE_DATETIME_VARIATION_DATE:
return KeyboardId.MODE_DATE;
case InputType.TYPE_DATETIME_VARIATION_TIME:
return KeyboardId.MODE_TIME;
default: // InputType.TYPE_DATETIME_VARIATION_NORMAL
return KeyboardId.MODE_DATETIME;
}
case InputType.TYPE_CLASS_PHONE:
return KeyboardId.MODE_PHONE;
case InputType.TYPE_CLASS_TEXT:
if (InputTypeUtils.isEmailVariation(variation)) {
return KeyboardId.MODE_EMAIL;
} else if (variation == InputType.TYPE_TEXT_VARIATION_URI) {
return KeyboardId.MODE_URL;
} else if (variation == InputType.TYPE_TEXT_VARIATION_SHORT_MESSAGE) {
return KeyboardId.MODE_IM;
} else if (variation == InputType.TYPE_TEXT_VARIATION_FILTER) {
return KeyboardId.MODE_TEXT;
} else {
return KeyboardId.MODE_TEXT;
}
default:
return KeyboardId.MODE_TEXT;
}
}
private int getInputType(String type) {
int inputType;
switch (type) {
case Constants.Value.TEXT:
inputType = InputType.TYPE_CLASS_TEXT;
break;
case Constants.Value.DATE:
inputType = InputType.TYPE_NULL;
getHostView().setFocusable(false);
break;
case Constants.Value.DATETIME:
inputType = InputType.TYPE_CLASS_DATETIME;
break;
case Constants.Value.EMAIL:
inputType = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS;
break;
case Constants.Value.PASSWORD:
inputType = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD;
getHostView().setTransformationMethod(PasswordTransformationMethod.getInstance());
break;
case Constants.Value.TEL:
inputType = InputType.TYPE_CLASS_PHONE;
break;
case Constants.Value.TIME:
inputType = InputType.TYPE_NULL;
getHostView().setFocusable(false);
break;
case Constants.Value.URL:
inputType = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_URI;
break;
case Constants.Value.NUMBER:
inputType = InputType.TYPE_CLASS_NUMBER;
break;
default:
inputType = InputType.TYPE_CLASS_TEXT;
}
return inputType;
}
private static String toInputClassString(final int inputClass) {
switch (inputClass) {
case InputType.TYPE_CLASS_TEXT:
return "TYPE_CLASS_TEXT";
case InputType.TYPE_CLASS_PHONE:
return "TYPE_CLASS_PHONE";
case InputType.TYPE_CLASS_NUMBER:
return "TYPE_CLASS_NUMBER";
case InputType.TYPE_CLASS_DATETIME:
return "TYPE_CLASS_DATETIME";
default:
return String.format("unknownInputClass<0x%08x>", inputClass);
}
}
private static int getKeyboardMode(final EditorInfo editorInfo) {
final int inputType = editorInfo.inputType;
final int variation = inputType & InputType.TYPE_MASK_VARIATION;
switch (inputType & InputType.TYPE_MASK_CLASS) {
case InputType.TYPE_CLASS_NUMBER:
return KeyboardId.MODE_NUMBER;
case InputType.TYPE_CLASS_DATETIME:
switch (variation) {
case InputType.TYPE_DATETIME_VARIATION_DATE:
return KeyboardId.MODE_DATE;
case InputType.TYPE_DATETIME_VARIATION_TIME:
return KeyboardId.MODE_TIME;
default: // InputType.TYPE_DATETIME_VARIATION_NORMAL
return KeyboardId.MODE_DATETIME;
}
case InputType.TYPE_CLASS_PHONE:
return KeyboardId.MODE_PHONE;
case InputType.TYPE_CLASS_TEXT:
if (InputTypeUtils.isEmailVariation(variation)) {
return KeyboardId.MODE_EMAIL;
} else if (variation == InputType.TYPE_TEXT_VARIATION_URI) {
return KeyboardId.MODE_URL;
} else if (variation == InputType.TYPE_TEXT_VARIATION_SHORT_MESSAGE) {
return KeyboardId.MODE_IM;
} else if (variation == InputType.TYPE_TEXT_VARIATION_FILTER) {
return KeyboardId.MODE_TEXT;
} else {
return KeyboardId.MODE_TEXT;
}
default:
return KeyboardId.MODE_TEXT;
}
}
private static int getKeyboardMode(final EditorInfo editorInfo) {
final int inputType = editorInfo.inputType;
final int variation = inputType & InputType.TYPE_MASK_VARIATION;
switch (inputType & InputType.TYPE_MASK_CLASS) {
case InputType.TYPE_CLASS_NUMBER:
return KeyboardId.MODE_NUMBER;
case InputType.TYPE_CLASS_DATETIME:
switch (variation) {
case InputType.TYPE_DATETIME_VARIATION_DATE:
return KeyboardId.MODE_DATE;
case InputType.TYPE_DATETIME_VARIATION_TIME:
return KeyboardId.MODE_TIME;
default: // InputType.TYPE_DATETIME_VARIATION_NORMAL
return KeyboardId.MODE_DATETIME;
}
case InputType.TYPE_CLASS_PHONE:
return KeyboardId.MODE_PHONE;
case InputType.TYPE_CLASS_TEXT:
if (InputTypeUtils.isEmailVariation(variation)) {
return KeyboardId.MODE_EMAIL;
} else if (variation == InputType.TYPE_TEXT_VARIATION_URI) {
return KeyboardId.MODE_URL;
} else if (variation == InputType.TYPE_TEXT_VARIATION_SHORT_MESSAGE) {
return KeyboardId.MODE_IM;
} else if (variation == InputType.TYPE_TEXT_VARIATION_FILTER) {
return KeyboardId.MODE_TEXT;
} else {
return KeyboardId.MODE_TEXT;
}
default:
return KeyboardId.MODE_TEXT;
}
}
private void showSoftKeyboard(final EditText view, ViewGroup keypadarea, String defaultInput) {
view.clearFocus();
if (defaultInput != null) {
view.setText(defaultInput);
view.setSelection(defaultInput.length());
}
boolean isnumeric = ((view.getInputType() & InputType.TYPE_CLASS_NUMBER) == InputType.TYPE_CLASS_NUMBER)
|| ((view.getInputType() & InputType.TYPE_CLASS_DATETIME) == InputType.TYPE_CLASS_DATETIME);
int whichkeyboard = Integer.parseInt(appPreferences.getString("keyboard_preference", "1"));
int whichkeypad = Integer.parseInt(appPreferences.getString("keypad_preference", "1"));
boolean gkeyboardAvail = getResources().getBoolean(R.bool.game_keyboard_available);
boolean gkeypadAvail = getResources().getBoolean(R.bool.game_keypad_available);
if (isnumeric && gkeypadAvail && whichkeypad == 1 && keypadarea != null) {
Keyboard.showNumberpad(this, view, keypadarea, mNumpadkeyMap);
} else if (!isnumeric && gkeyboardAvail && whichkeyboard == 1 && keypadarea != null) {
Keyboard.showKeyboard(this, view, keypadarea, mKeyboardkeyMap);
} else if (whichkeypad == 2 || whichkeyboard == 2 || (isnumeric && !gkeypadAvail) || (!isnumeric && !gkeyboardAvail)) {
showSystemKeyboard(view);
}
}
private int getInputType(String type) {
int inputType;
switch (type) {
case WXDomPropConstant.WX_ATTR_INPUT_TYPE_TEXT:
inputType = InputType.TYPE_CLASS_TEXT;
break;
case WXDomPropConstant.WX_ATTR_INPUT_TYPE_DATE:
inputType = InputType.TYPE_CLASS_DATETIME | InputType.TYPE_DATETIME_VARIATION_DATE;
break;
case WXDomPropConstant.WX_ATTR_INPUT_TYPE_DATETIME:
inputType = InputType.TYPE_CLASS_DATETIME;
break;
case WXDomPropConstant.WX_ATTR_INPUT_TYPE_EMAIL:
inputType = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS;
break;
case WXDomPropConstant.WX_ATTR_INPUT_TYPE_PASSWORD:
inputType = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD;
getView().setTransformationMethod(PasswordTransformationMethod.getInstance());
break;
case WXDomPropConstant.WX_ATTR_INPUT_TYPE_TEL:
inputType = InputType.TYPE_CLASS_PHONE;
break;
case WXDomPropConstant.WX_ATTR_INPUT_TYPE_TIME:
inputType = InputType.TYPE_CLASS_DATETIME | InputType.TYPE_DATETIME_VARIATION_TIME;
break;
case WXDomPropConstant.WX_ATTR_INPUT_TYPE_URL:
inputType = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_URI;
break;
default:
inputType = InputType.TYPE_CLASS_TEXT;
}
return inputType;
}
public View.OnClickListener onValueTextClick() {
return v -> {
if ((mEnumeratedRule.getInputType() & InputType.TYPE_CLASS_DATETIME) != 0) {
showDateValueDialog();
} else {
showValueDialog();
}
};
}
private static String toInputClassString(final int inputClass) {
switch (inputClass) {
case InputType.TYPE_CLASS_TEXT:
return "TYPE_CLASS_TEXT";
case InputType.TYPE_CLASS_PHONE:
return "TYPE_CLASS_PHONE";
case InputType.TYPE_CLASS_NUMBER:
return "TYPE_CLASS_NUMBER";
case InputType.TYPE_CLASS_DATETIME:
return "TYPE_CLASS_DATETIME";
default:
return String.format("unknownInputClass<0x%08x>", inputClass);
}
}
protected void editDialog(Context context) {
if (!mActivateDialog) return;
if (mCustomerDialogBuilder != null) {
mCustomerDialogBuilder.customerDialogBuilder(this).show();
} else {
if ((valueTextView.getInputType() & InputType.TYPE_CLASS_DATETIME) > 0) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(DateConverter.localDateStrToDate(getText(), getContext()));
int day = calendar.get(Calendar.DAY_OF_MONTH);
int month = calendar.get(Calendar.MONTH);
int year = calendar.get(Calendar.YEAR);
DatePickerDialog datePickerDialog = new DatePickerDialog(
getContext(), this, year, month, day);
datePickerDialog.show();
} else {
final EditText editText = new EditText(context);
editText.setText(mTextValue);
editText.setGravity(Gravity.CENTER);
editText.setInputType(textViewInputType);
editText.requestFocus();
LinearLayout linearLayout = new LinearLayout(context.getApplicationContext());
linearLayout.setOrientation(LinearLayout.VERTICAL);
linearLayout.addView(editText);
final SweetAlertDialog dialog = new SweetAlertDialog(context, SweetAlertDialog.NORMAL_TYPE)
.setTitleText(mTitle)
.setCancelText(getContext().getString(R.string.global_cancel))
.setHideKeyBoardOnDismiss(true)
.setCancelClickListener(sDialog -> {
editText.clearFocus();
Keyboard.hide(context, editText);
sDialog.dismissWithAnimation();})
.setConfirmClickListener(sDialog -> {
editText.clearFocus();
Keyboard.hide(context, editText);
setText(editText.getText().toString());
sDialog.dismissWithAnimation();
if (mConfirmClickListener != null)
mConfirmClickListener.onTextChanged(EditableInputView.this);
});
dialog.setOnDismissListener(sDialog -> {
rootView.requestFocus();
InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Activity.INPUT_METHOD_SERVICE);
if ( imm !=null)
imm.hideSoftInputFromWindow(rootView.getWindowToken(), 0);});
//Keyboard.hide(context, editText);});
dialog.setOnShowListener(sDialog -> {
editText.requestFocus();
Keyboard.show(context, editText);
});
dialog.setCustomView(linearLayout);
dialog.show();
}
}
}