PersonNameEditText
Provides a user interface element that represents a person's name.
Validation
Default behaviour validates only input that satisfies the conditions of ^[a-zA-Z0-9 ,'.-]+$ regular expression. There are several ways to changethe basic validation flow:
XML attributes:
app:enableValidation;Validation builder.
Determining validation rules
val personNameField = findViewById(R.id.personNameField)
val rule : PersonNameRule = PersonNameRule.ValidationBuilder()
.setRegex("<VALIDATION_REGEX>")
.setAllowableMinLength(1)
.setAllowableMaxLength(24)
.build()
personNameField.setRule(rule)PersonNameEditText personNameField = findViewById(R.id.personNameField);
PersonNameRule rule = new PersonNameRule.ValidationBuilder()
.setRegex("<VALIDATION_REGEX>")
.setAllowableMinLength(1)
.setAllowableMaxLength(24)
.build();
personNameField.setRule(rule);Set field name
Sets the text to be used for data transfer to VGS proxy. Usually, it is similar to field-name in JSON path in your inbound route filters. It is highly important to specify this parameter because the VGSCollect module relies on it too.
Warning: You must set up fieldName in other way input field will be ignored by VGSCollect.
<com.verygoodsecurity.vgscollect.widget.PersonNameEditText
android:id="@+id/cardHolderName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:fieldName="card_holder_name"/>val cardHolderName = findViewById<PersonNameEditText>(R.id.cardHolderName)
cardHolderName.isRequired(false)PersonNameEditText cardHolderName = findViewById(R.id.cardHolderName);
cardHolderName.isRequired(false);Define the required state
Specifies whether the text inside input field is required to be filled.
When app:isRequired set as true, then input data should be valid only. If app:isRequired set as false, then input data will be valid in case the field is empty. Otherwise input data should be valid.
By default, a widget is required.
<com.verygoodsecurity.vgscollect.widget.PersonNameEditText
android:id="@+id/cardHolderName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:isRequired="false"/>val cardHolderName = findViewById<PersonNameEditText>(R.id.cardHolderName)
cardHolderName.isRequired(false)PersonNameEditText cardHolderName = findViewById(R.id.cardHolderName);
cardHolderName.isRequired(false);Specify the keyboard type
You should always declare the input method for this input fields by adding the app:inputType to tell the system displays the appropriate soft input method (such as an on-screen keyboard).
For example, if you'd like an input method for entering a phone number specify app:inputType as number or numberPassword
<com.verygoodsecurity.vgscollect.widget.PersonNameEditText
android:id="@+id/cardHolderName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:inputType="number"/>val cardHolderName = findViewById<PersonNameEditText>(R.id.cardHolderName)
cardHolderName.setInputType(InputType.TYPE_CLASS_NUMBER)PersonNameEditText cardHolderName = findViewById(R.id.cardHolderName);
cardHolderName.setInputType(InputType.TYPE_CLASS_NUMBER);Additional XML attributes
Attribute
Description
app:enableValidationSet the validation state of this view. Set true if this view enables validation, it's false otherwise.
app:inputTypeSet the type of the content with a constant as defined for input field.
app:imeOptionsSpecify soft input method for the input method action. By default, the system uses a
actionNextPlain textor
actionDonePlain textaction.
app:fontFamilyDefault font family (named by string or as a font resource reference) for the text.
app:fieldNameSets the text to be used for data transfer to VGS proxy. Usually, it is similar to field-name in JSON path in your inbound route filters.
app:isRequiredSpecifies whether the text inside input field is required to be filled.
app:textSizeSize of the text.
app:ellipsizeIf set, causes words that are longer than the view is wide to be ellipsized instead of broken in the middle.
app:ellipsizeIf set, causes words that are longer than the view is wide to be ellipsized instead of broken in the middle.
app:textText to display.
app:textColorText color.
app:maxLinesMakes the View be at most this many lines tall.
app:minLinesMakes the View be at least this many lines tall.
app:textStyleStyle (normal, bold, italic) for text.
app:cursorVisibleMakes the cursor visible (the default) or invisible.
app:gravitySpecifies how to align the text by the view’s x- or y-axis when the text is smaller than the view.
app:scrollHorizontallyWhen the text is allowed to be wider than the view (and therefore can be scrolled horizontally).
app:hintHint text to display when the text is empty.
Last updated

