ItemList.Builder

public static final class ItemList.Builder
extends Object

java.lang.Object
   ↳ androidx.car.app.model.ItemList.Builder


A builder of ItemList.

Summary

Public constructors

Builder()

Returns an empty ItemList.Builder instance.

Public methods

ItemList.Builder addItem(Item item)

Adds an item to the list.

ItemList build()

Constructs the item list defined by this builder.

ItemList.Builder setNoItemsMessage(CharSequence noItemsMessage)

Sets the text to display if the list is empty.

ItemList.Builder setOnItemsVisibilityChangedListener(ItemList.OnItemVisibilityChangedListener itemVisibilityChangedListener)

Sets the ItemList.OnItemVisibilityChangedListener to call when the visible items in the list changes.

ItemList.Builder setOnSelectedListener(ItemList.OnSelectedListener onSelectedListener)

Marks the list as selectable by setting the ItemList.OnSelectedListener to call when an item is selected by the user, or set to null to mark the list as non-selectable.

ItemList.Builder setSelectedIndex(int selectedIndex)

Sets the index of the item to show as selected.

Inherited methods

Public constructors

Builder

public Builder ()

Returns an empty ItemList.Builder instance.

Public methods

addItem

public ItemList.Builder addItem (Item item)

Adds an item to the list.

Parameters
item Item

Returns
ItemList.Builder

Throws
NullPointerException if item is null

build

public ItemList build ()

Constructs the item list defined by this builder.

Returns
ItemList

Throws
IllegalStateException if the list is selectable but does not have any items, if the selected index is greater or equal to the size of the list, or if the list is selectable and any items have either one of their OnClickListener or Toggle set

setNoItemsMessage

public ItemList.Builder setNoItemsMessage (CharSequence noItemsMessage)

Sets the text to display if the list is empty.

If the list is empty and the app does not explicitly set the message with this method, the host will show a default message.

Spans are not supported in the input string and will be ignored.

Parameters
noItemsMessage CharSequence

Returns
ItemList.Builder

Throws
NullPointerException if noItemsMessage is null

setOnItemsVisibilityChangedListener

public ItemList.Builder setOnItemsVisibilityChangedListener (ItemList.OnItemVisibilityChangedListener itemVisibilityChangedListener)

Sets the ItemList.OnItemVisibilityChangedListener to call when the visible items in the list changes.

Note that the listener relates to UI events and will be executed on the main thread using Looper.getMainLooper().

Parameters
itemVisibilityChangedListener ItemList.OnItemVisibilityChangedListener

Returns
ItemList.Builder

Throws
NullPointerException if itemVisibilityChangedListener is null

setOnSelectedListener

public ItemList.Builder setOnSelectedListener (ItemList.OnSelectedListener onSelectedListener)

Marks the list as selectable by setting the ItemList.OnSelectedListener to call when an item is selected by the user, or set to null to mark the list as non-selectable.

Selectable lists, where allowed by the template they are added to, automatically display an item in a selected state when selected by the user.

The items in the list define a mutually exclusive selection scope: only a single item will be selected at any given time.

The specific way in which the selection will be visualized depends on the template and the host implementation. For example, some templates may display the list as a radio button group, while others may highlight the selected item's background.

Parameters
onSelectedListener ItemList.OnSelectedListener

Returns
ItemList.Builder

Throws
NullPointerException if onSelectedListener is null

setSelectedIndex

public ItemList.Builder setSelectedIndex (int selectedIndex)

Sets the index of the item to show as selected.

By default and unless explicitly set with this method, the first item is selected.

If the list is not a selectable list set with setOnSelectedListener(ItemList.OnSelectedListener), this value is ignored.

Parameters
selectedIndex int

Returns
ItemList.Builder