public class

ChoiceFormCell

extends LinearLayout
implements FormCell<T> InlineValidation SupportsKey
java.lang.Object
   ↳ android.view.View
     ↳ android.view.ViewGroup
       ↳ android.widget.LinearLayout
         ↳ com.sap.cloud.mobile.fiori.formcell.ChoiceFormCell

Class Overview

A FormCell control which allows a user to view or select from a list of strings using Chips. Structure of the control :

  • TextView : showing the text to be displayed for label of the control See also : setKey(CharSequence)
  • Chips : showing a list of available strings. See also: setValueOptions(String[]) (CharSequence)}
  • The value property of the cell is equal to the selected tab index in the control. Currently two states of the control are available : normal, selected.

    Summary

    XML Attributes
    Attribute Name Related Method Description
    android:clickable setClickable(boolean)  
    android:enabled setEnabled(boolean)  
    android:entries  
    android:focusable setFocusable(boolean)  
    com.sap.cloud.mobile.fiori:cellChangeListener  
    com.sap.cloud.mobile.fiori:errorEnabled isErrorEnabled() Whether the layout is laid out as if an error will be displayed. 
    com.sap.cloud.mobile.fiori:helperEnabled isHelperEnabled()  
    com.sap.cloud.mobile.fiori:helperText setHelperText(CharSequence)  
    com.sap.cloud.mobile.fiori:helperTextTextAppearance setHelperTextAppearance(int)  
    com.sap.cloud.mobile.fiori:isEditable Set to false if the control if the control is readOnly else true. 
    com.sap.cloud.mobile.fiori:key  
    com.sap.cloud.mobile.fiori:label setLabel(CharSequence)  
    com.sap.cloud.mobile.fiori:labelEnabled isLabelEnabled()  
    com.sap.cloud.mobile.fiori:labelTextAppearance setLabelTextAppearanceFocused(int)  
    com.sap.cloud.mobile.fiori:labelTextAppearanceFocused setLabelTextAppearanceFocused(int)  
    com.sap.cloud.mobile.fiori:labelTextAppearanceUnFocused setLabelTextAppearanceFocused(int)  
    com.sap.cloud.mobile.fiori:outlined  
    com.sap.cloud.mobile.fiori:singleLine Constrains the chips in this group to a single horizontal line. 
    com.sap.cloud.mobile.fiori:value  
    [Expand]
    Inherited Constants
    From class android.widget.LinearLayout
    From class android.view.ViewGroup
    From class android.view.View
    Fields
    protected CharSequence mErrorMessage
    protected int mErrorTextAppearance
    protected CharSequence mHelperText
    protected int mHelperTextAppearance
    protected int mHorizontalMargin
    protected boolean mIsInError
    protected boolean mIsTablet
    protected int mLabelTextAppearance
    protected int mLabelTextAppearanceUnFocused
    protected TextView mLabelTextView
    protected boolean mShouldAttachOrientationListener
    protected TextView mStatusView
    [Expand]
    Inherited Fields
    From class android.view.View
    Public Constructors
    ChoiceFormCell(Context context)
    Construct a new ChoiceFormCell with default styling, sets the CellType to WidgetType.CHOICE_CONTROL
    ChoiceFormCell(Context context, AttributeSet attrs)
    Construct a new ChoiceFormCell with default styling, overriding the attributes for the control as requested, sets the CellType to WidgetType.CHOICE_CONTROL
    Public Methods
    void addView(View child, int index, ViewGroup.LayoutParams params)
    Add given view in the view
    int getCellType()
    Return the enum value for ChoiceFormCell
    CellValueChangeListener<Integer> getCellValueChangeListener()
    Return the value change handler of the control
    CharSequence getError()
    Get the error
    TextView getErrorView()
    CharSequence getKey()
    Return the label of the property of control
    TextView getKeyLabel()
    Return the view holding the keyname string
    Integer getValue()
    Get the index of the selected value.
    String[] getValueOptions()
    Return the available string options for the tabLayout
    boolean isEditable()
    Returns if the control is enabled or not to modify values.
    boolean isErrorEnabled()
    Is error enabled on the view
    boolean isHelperEnabled()
    Set if the helper field is enabled on the view
    boolean isLabelEnabled()
    Is the label field on the view is enabled
    boolean isOutlined()
    True when outlined chips are outlined.
    boolean isSingleLine()
    True when chips are displayed on a single line, that scrolls horizontally.
    void onRestoreInstanceState(Parcelable state)
    Parcelable onSaveInstanceState()
    void setAllowDeselect(boolean allowDeselect)
    allow or disallow user to deselect a selected choice
    void setCellValueChangeListener(CellValueChangeListener<Integer> listener)
    void setClickable(boolean clickable)
    Enable or disable clickable property on the view and all its children
    void setEditable(boolean isEditable)
    Set if the control is enabled or not to modify value of the control.
    void setEnabled(boolean enabled)
    Enable or disable the view
    void setError(CharSequence validationMessage)
    Set the error
    void setErrorEnabled(boolean errorEnabled)
    Enable or disable the error field on the view
    void setErrorTextAppearance(int textAppearance)
    Set the appearance of the error message
    void setFocusable(boolean focusable)
    Enable or disable focusable property on the view and all its children
    void setHelperEnabled(boolean helperEnabled)
    Enable or disable the helper field on the view
    void setKey(CharSequence keyName)
    Set the label for property of the control
    void setKeyEnabled(boolean enabled)
    void setKeyTextAppearance(int resId)
    void setLabelTextAppearanceUnFocused(int labelTextAppearanceUnFocused)
    Set the label text appearance when the view is not focused
    void setOutlined(boolean outlined)
    Indicate if chips should be outlined.
    void setOverrideKeyStyle(boolean overrideKeyStyle)
    Override the Key styling manually.
    void setOverrideStatusStyle(boolean overrideStatusStyle)
    Override the status i.e.
    void setShouldAttachOrientationListener(boolean shouldAttach)
    Determines if an OrientationEventListener should be attached.
    void setSingleLine(boolean singleLine)
    When set to true, chips will be displayed on a single line that can scroll horizontally when the line is wider than the display.
    void setValue(Integer value)
    Set the index of the selected value.
    void setValueOptions(String[] valueOptions)
    Sets the string options for the tabLayout
    Protected Methods
    void adjustMargins()
    Calculate and set the margins for the cell's elements.
    static boolean arrayContains(int[] array, int value)
    Check if the array contains the given property
    void drawableStateChanged()
    Drawable state changed
    TextView generateTextView()
    Generate the text view
    ViewGroup.LayoutParams getDefaultLayoutParams()
    CharSequence getHelperText()
    Get the helper text from the view
    CharSequence getLabel()
    Get the label on the view
    void replaceStatusView()
    Each time you add a new view, error/helper view has to be adjusted to be the last view in the layout
    void setHelperText(CharSequence helper)
    Set the helper text on the view
    void setHelperTextAppearance(int helperTextAppearance)
    Set the helper text appearance
    void setLabel(CharSequence key)
    Set the label on the view
    void setLabelEnabled(boolean keyEnabled)
    Enable or disable the label field on the view
    void setLabelTextAppearance(int textAppearance)
    Set the text appearance on the label.
    void setLabelTextAppearanceFocused(int textAppearance)
    Set the text appearance on the label when the view is not focused
    void setLabelTextColorError(ColorStateList color)
    Set the text color of the label for error mode
    void setLabelTextColorFocused(ColorStateList color)
    Set the color of label when the view is focused
    void setLabelTextColorUnFocused(ColorStateList color)
    Set the color of label when the view is not focused
    boolean setupErrorHelperView()
    Setup the error/helper field on the view
    boolean setupLabelView()
    Setup the label view on the view
    boolean shouldLayout(View v)
    Should layout the given view
    [Expand]
    Inherited Methods
    From class android.widget.LinearLayout
    From class android.view.ViewGroup
    From class android.view.View
    From class java.lang.Object
    From interface android.graphics.drawable.Drawable.Callback
    From interface android.view.KeyEvent.Callback
    From interface android.view.ViewManager
    From interface android.view.ViewParent
    From interface android.view.accessibility.AccessibilityEventSource
    From interface com.sap.cloud.mobile.fiori.formcell.FormCell
    From interface com.sap.cloud.mobile.fiori.formcell.InlineValidation
    From interface com.sap.cloud.mobile.fiori.formcell.SupportsKey

    XML Attributes

    android:clickable

    Related Methods

    android:enabled

    Related Methods

    android:entries

    Related Methods

    android:focusable

    Related Methods

    com.sap.cloud.mobile.fiori:cellChangeListener

    Related Methods

    com.sap.cloud.mobile.fiori:errorEnabled

    Whether the layout is laid out as if an error will be displayed.

    May be a boolean value, such as "true" or "false".

    Related Methods

    com.sap.cloud.mobile.fiori:helperEnabled

    Related Methods

    com.sap.cloud.mobile.fiori:helperText

    Related Methods

    com.sap.cloud.mobile.fiori:helperTextTextAppearance

    com.sap.cloud.mobile.fiori:isEditable

    Set to false if the control if the control is readOnly else true. Labels and text values will be selectable if the control is in readOnly mode.

    May be a boolean value, such as "true" or "false".

    Related Methods

    com.sap.cloud.mobile.fiori:key

    Related Methods

    com.sap.cloud.mobile.fiori:label

    Related Methods

    com.sap.cloud.mobile.fiori:labelEnabled

    Related Methods

    com.sap.cloud.mobile.fiori:labelTextAppearance

    com.sap.cloud.mobile.fiori:labelTextAppearanceFocused

    com.sap.cloud.mobile.fiori:labelTextAppearanceUnFocused

    com.sap.cloud.mobile.fiori:outlined

    Related Methods

    com.sap.cloud.mobile.fiori:singleLine

    Constrains the chips in this group to a single horizontal line. By default, this is false and the chips in this group will reflow to multiple lines. If you set this to true, you'll usually want to wrap this ChipGroup in a HorizontalScrollView.

    May be a boolean value, such as "true" or "false".

    Related Methods

    com.sap.cloud.mobile.fiori:value

    Related Methods

    Fields

    protected CharSequence mErrorMessage

    protected int mErrorTextAppearance

    protected CharSequence mHelperText

    protected int mHelperTextAppearance

    protected int mHorizontalMargin

    protected boolean mIsInError

    protected boolean mIsTablet

    protected int mLabelTextAppearance

    protected int mLabelTextAppearanceUnFocused

    protected TextView mLabelTextView

    protected boolean mShouldAttachOrientationListener

    protected TextView mStatusView

    Public Constructors

    public ChoiceFormCell (Context context)

    Construct a new ChoiceFormCell with default styling, sets the CellType to WidgetType.CHOICE_CONTROL

    Parameters
    context context

    public ChoiceFormCell (Context context, AttributeSet attrs)

    Construct a new ChoiceFormCell with default styling, overriding the attributes for the control as requested, sets the CellType to WidgetType.CHOICE_CONTROL

    Parameters
    context context
    attrs attribute set

    Public Methods

    public void addView (View child, int index, ViewGroup.LayoutParams params)

    Add given view in the view

    Parameters
    child View
    index position at which the view has to be added
    params ViewGroup.LayoutParams

    public int getCellType ()

    Return the enum value for ChoiceFormCell

    Returns
    • WidgetType type of the control which has implemented FormCell

    public CellValueChangeListener<Integer> getCellValueChangeListener ()

    Return the value change handler of the control

    Returns
    • OnCellChangeListener - value change listener of the control

    public CharSequence getError ()

    Get the error

    Returns
    • Error message

    public TextView getErrorView ()

    public CharSequence getKey ()

    Return the label of the property of control

    Returns
    • CharSequence keyName

    public TextView getKeyLabel ()

    Return the view holding the keyname string

    Returns
    • TextView textview displaying keyname

    public Integer getValue ()

    Get the index of the selected value.

    Returns
    • the index of the selected value or -1 if no value selected.

    public String[] getValueOptions ()

    Return the available string options for the tabLayout

    Returns
    • String[] string values

    public boolean isEditable ()

    Returns if the control is enabled or not to modify values.

    Returns
    • Boolean user is allowed to modify the value of the control

    public boolean isErrorEnabled ()

    Is error enabled on the view

    Returns
    • boolean

    public boolean isHelperEnabled ()

    Set if the helper field is enabled on the view

    Returns
    • boolean

    public boolean isLabelEnabled ()

    Is the label field on the view is enabled

    Returns
    • boolean

    public boolean isOutlined ()

    True when outlined chips are outlined.

    Returns
    • true when outlined chips are outlined.

    public boolean isSingleLine ()

    True when chips are displayed on a single line, that scrolls horizontally. Otherwise, chips are displayed on multiple lines.

    Returns
    • true when chips are displayed on a single line, or false when chips are displayed on multiple lines.

    public void onRestoreInstanceState (Parcelable state)

    public Parcelable onSaveInstanceState ()

    public void setAllowDeselect (boolean allowDeselect)

    allow or disallow user to deselect a selected choice

    public void setCellValueChangeListener (CellValueChangeListener<Integer> listener)

    public void setClickable (boolean clickable)

    Enable or disable clickable property on the view and all its children

    Related XML Attributes
    Parameters
    clickable boolean

    public void setEditable (boolean isEditable)

    Set if the control is enabled or not to modify value of the control. In readOnly mode, however, the text labels and text values will be selectable. By default, the control will be editable( user can modify value of the control)

    Parameters
    isEditable Boolean

    public void setEnabled (boolean enabled)

    Enable or disable the view

    Related XML Attributes
    Parameters
    enabled boolean

    public void setError (CharSequence validationMessage)

    Set the error

    Parameters
    validationMessage error message

    public void setErrorEnabled (boolean errorEnabled)

    Enable or disable the error field on the view

    Parameters
    errorEnabled boolean

    public void setErrorTextAppearance (int textAppearance)

    Set the appearance of the error message

    Parameters
    textAppearance resource id

    public void setFocusable (boolean focusable)

    Enable or disable focusable property on the view and all its children

    Related XML Attributes
    Parameters
    focusable boolean

    public void setHelperEnabled (boolean helperEnabled)

    Enable or disable the helper field on the view

    Parameters
    helperEnabled boolean

    public void setKey (CharSequence keyName)

    Set the label for property of the control

    Parameters
    keyName label of the property

    public void setKeyEnabled (boolean enabled)

    public void setKeyTextAppearance (int resId)

    public void setLabelTextAppearanceUnFocused (int labelTextAppearanceUnFocused)

    Set the label text appearance when the view is not focused

    Parameters
    labelTextAppearanceUnFocused Style resource

    public void setOutlined (boolean outlined)

    Indicate if chips should be outlined.

    Parameters
    outlined true to outline chips, otherwise chips are not outlined.

    public void setOverrideKeyStyle (boolean overrideKeyStyle)

    Override the Key styling manually.

    Parameters
    overrideKeyStyle boolean

    public void setOverrideStatusStyle (boolean overrideStatusStyle)

    Override the status i.e. error and helper styling manually

    Parameters
    overrideStatusStyle boolean

    public void setShouldAttachOrientationListener (boolean shouldAttach)

    Determines if an OrientationEventListener should be attached.

    Parameters
    shouldAttach Whether the FormCell should consider attaching an OrientationEventListener or not

    public void setSingleLine (boolean singleLine)

    When set to true, chips will be displayed on a single line that can scroll horizontally when the line is wider than the display. When set to false, chips will be displayed on multiple lines.

    Parameters
    singleLine true to display chips on a single line, false to display chips on multiple lines.

    public void setValue (Integer value)

    Set the index of the selected value.

    Resets the Cell if null or negative index is provided.

    Parameters
    value the index of the selected value.

    public void setValueOptions (String[] valueOptions)

    Sets the string options for the tabLayout

    Parameters
    valueOptions available string values

    Protected Methods

    protected void adjustMargins ()

    Calculate and set the margins for the cell's elements. Subclasses should override this method to suit their own needs.

    protected static boolean arrayContains (int[] array, int value)

    Check if the array contains the given property

    Parameters
    array array of integer
    value int
    Returns
    • boolean

    protected void drawableStateChanged ()

    Drawable state changed

    protected TextView generateTextView ()

    Generate the text view

    Returns
    • TextView

    protected ViewGroup.LayoutParams getDefaultLayoutParams ()

    protected CharSequence getHelperText ()

    Get the helper text from the view

    Related XML Attributes
    Returns
    • CharSequence

    protected CharSequence getLabel ()

    Get the label on the view

    Related XML Attributes
    Returns
    • CharSequence

    protected void replaceStatusView ()

    Each time you add a new view, error/helper view has to be adjusted to be the last view in the layout

    protected void setHelperText (CharSequence helper)

    Set the helper text on the view

    Related XML Attributes
    Parameters
    helper CharSequence
    See Also

    protected void setHelperTextAppearance (int helperTextAppearance)

    Set the helper text appearance

    Parameters
    helperTextAppearance style resource

    protected void setLabel (CharSequence key)

    Set the label on the view

    Related XML Attributes
    Parameters
    key CharSequence
    See Also

    protected void setLabelEnabled (boolean keyEnabled)

    Enable or disable the label field on the view

    Parameters
    keyEnabled boolean

    protected void setLabelTextAppearance (int textAppearance)

    Set the text appearance on the label. This changes the appearance when the view is focused and unfocused

    Parameters
    textAppearance style resource

    protected void setLabelTextAppearanceFocused (int textAppearance)

    Set the text appearance on the label when the view is not focused

    Parameters
    textAppearance Style resource

    protected void setLabelTextColorError (ColorStateList color)

    Set the text color of the label for error mode

    Parameters
    color ColorStateList

    protected void setLabelTextColorFocused (ColorStateList color)

    Set the color of label when the view is focused

    Parameters
    color ColorStateList

    protected void setLabelTextColorUnFocused (ColorStateList color)

    Set the color of label when the view is not focused

    Parameters
    color ColorStateList

    protected boolean setupErrorHelperView ()

    Setup the error/helper field on the view

    Returns
    • boolean true: new view is created false:existing view is used

    protected boolean setupLabelView ()

    Setup the label view on the view

    Returns
    • boolean true: new view is created false:existing view is used

    protected boolean shouldLayout (View v)

    Should layout the given view

    Parameters
    v View
    Returns
    • boolean