# MessagePattern.Part.Type

Added in[API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

# Type

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/android/icu/text/MessagePattern.Part.Type "View this page in Java")  

```
class Type
```

|---|---|----------------------------------------------------------------------------------------------------------------------------------------|
| [kotlin.Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)                                                            |||
| ↳ | [kotlin.Enum](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/index.html)\<[android.icu.text.MessagePattern.Part.Type](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#)\> ||
|   | ↳ | [android.icu.text.MessagePattern.Part.Type](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#) |

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Known Direct Subclasses [MessagePattern.Part.Type.ARG_DOUBLE](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_DOUBLE),[MessagePattern.Part.Type.ARG_INT](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_INT),[MessagePattern.Part.Type.ARG_LIMIT](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_LIMIT),[MessagePattern.Part.Type.ARG_NAME](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_NAME),[MessagePattern.Part.Type.ARG_NUMBER](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_NUMBER),[MessagePattern.Part.Type.ARG_SELECTOR](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_SELECTOR),[MessagePattern.Part.Type.ARG_START](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_START),[MessagePattern.Part.Type.ARG_STYLE](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_STYLE),[MessagePattern.Part.Type.ARG_TYPE](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_TYPE),[MessagePattern.Part.Type.INSERT_CHAR](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:INSERT_CHAR),[MessagePattern.Part.Type.MSG_LIMIT](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:MSG_LIMIT),[MessagePattern.Part.Type.MSG_START](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:MSG_START), and 2 others. |---------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------| | [MessagePattern.Part.Type.ARG_DOUBLE](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_DOUBLE)         | A numeric value, for example the offset or an explicit selector value in a PluralFormat style.  | | [MessagePattern.Part.Type.ARG_INT](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_INT)               | An integer value, for example the offset or an explicit selector value in a PluralFormat style. | | [MessagePattern.Part.Type.ARG_LIMIT](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_LIMIT)           | End of an argument.                                                                             | | [MessagePattern.Part.Type.ARG_NAME](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_NAME)             | The argument name.                                                                              | | [MessagePattern.Part.Type.ARG_NUMBER](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_NUMBER)         | The argument number, provided by the value.                                                     | | [MessagePattern.Part.Type.ARG_SELECTOR](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_SELECTOR)     | A selector substring in a "complex" argument style.                                             | | [MessagePattern.Part.Type.ARG_START](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_START)           | Start of an argument.                                                                           | | [MessagePattern.Part.Type.ARG_STYLE](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_STYLE)           | The argument style text.                                                                        | | [MessagePattern.Part.Type.ARG_TYPE](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_TYPE)             | The argument type.                                                                              | | [MessagePattern.Part.Type.INSERT_CHAR](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:INSERT_CHAR)       | Indicates that a syntax character needs to be inserted for auto-quoting.                        | | [MessagePattern.Part.Type.MSG_LIMIT](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:MSG_LIMIT)           | End of a message pattern (main or nested).                                                      | | [MessagePattern.Part.Type.MSG_START](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:MSG_START)           | Start of a message pattern (main or nested).                                                    | | [MessagePattern.Part.Type.REPLACE_NUMBER](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:REPLACE_NUMBER) | Indicates a syntactic (non-escaped) # symbol in a plural variant.                               | | [MessagePattern.Part.Type.SKIP_SYNTAX](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:SKIP_SYNTAX)       | Indicates a substring of the pattern string which is to be skipped when formatting.             | |

Part type constants.

## Summary

|                                                                                                          Enum values                                                                                                           ||
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|
| [ARG_DOUBLE](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_DOUBLE) A numeric value, for example the offset or an explicit selector value in a PluralFormat style. |
| [ARG_INT](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_INT) An integer value, for example the offset or an explicit selector value in a PluralFormat style.      |
| [ARG_LIMIT](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_LIMIT) End of an argument.                                                                              |
| [ARG_NAME](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_NAME) The argument name.                                                                                 |
| [ARG_NUMBER](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_NUMBER) The argument number, provided by the value.                                                    |
| [ARG_SELECTOR](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_SELECTOR) A selector substring in a "complex" argument style.                                        |
| [ARG_START](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_START) Start of an argument.                                                                            |
| [ARG_STYLE](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_STYLE) The argument style text.                                                                         |
| [ARG_TYPE](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:ARG_TYPE) The argument type.                                                                                 |
| [INSERT_CHAR](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:INSERT_CHAR) Indicates that a syntax character needs to be inserted for auto-quoting.                     |
| [MSG_LIMIT](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:MSG_LIMIT) End of a message pattern (main or nested).                                                       |
| [MSG_START](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:MSG_START) Start of a message pattern (main or nested).                                                     |
| [REPLACE_NUMBER](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:REPLACE_NUMBER) Indicates a syntactic (non-escaped) # symbol in a plural variant.                      |
| [SKIP_SYNTAX](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#ENUM_VALUE:SKIP_SYNTAX) Indicates a substring of the pattern string which is to be skipped when formatting.          |

|                                                                                                                             Public methods                                                                                                                             ||
|------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) | [hasNumericValue](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern.Part.Type#hasNumericValue())`()` Indicates whether this part has a numeric value. |

## Enum values

### ARG_DOUBLE

Added in[API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val ARG_DOUBLE : MessagePattern.Part.Type
```

A numeric value, for example the offset or an explicit selector value in a PluralFormat style. The part value is an index into an internal array of numeric values; use getNumericValue().  

### ARG_INT

Added in[API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val ARG_INT : MessagePattern.Part.Type
```

An integer value, for example the offset or an explicit selector value in a PluralFormat style. The part value is the integer value.  

### ARG_LIMIT

Added in[API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val ARG_LIMIT : MessagePattern.Part.Type
```

End of an argument. The length is 1 for the '}'. The value is the ordinal value of the ArgType. Use getArgType().  

### ARG_NAME

Added in[API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val ARG_NAME : MessagePattern.Part.Type
```

The argument name. The value is undefined and currently always 0.  

### ARG_NUMBER

Added in[API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val ARG_NUMBER : MessagePattern.Part.Type
```

The argument number, provided by the value.  

### ARG_SELECTOR

Added in[API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val ARG_SELECTOR : MessagePattern.Part.Type
```

A selector substring in a "complex" argument style. The value is undefined and currently always 0.  

### ARG_START

Added in[API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val ARG_START : MessagePattern.Part.Type
```

Start of an argument. The length is 1 for the '{'. The value is the ordinal value of the ArgType. Use getArgType().

This part is followed by either an ARG_NUMBER or ARG_NAME, followed by optional argument sub-parts (see ArgType constants) and finally an ARG_LIMIT part.  

### ARG_STYLE

Added in[API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val ARG_STYLE : MessagePattern.Part.Type
```

The argument style text. The value is undefined and currently always 0.  

### ARG_TYPE

Added in[API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val ARG_TYPE : MessagePattern.Part.Type
```

The argument type. The value is undefined and currently always 0.  

### INSERT_CHAR

Added in[API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val INSERT_CHAR : MessagePattern.Part.Type
```

Indicates that a syntax character needs to be inserted for auto-quoting. The length is 0. The value is the character code of the insertion character. (U+0027=APOSTROPHE)  

### MSG_LIMIT

Added in[API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val MSG_LIMIT : MessagePattern.Part.Type
```

End of a message pattern (main or nested). The length is 0 for the top-level message and the last sub-message of a choice argument, otherwise 1 for the '}' or (in a choice argument style) the '\|'. The value indicates the nesting level, starting with 0 for the main message.  

### MSG_START

Added in[API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val MSG_START : MessagePattern.Part.Type
```

Start of a message pattern (main or nested). The length is 0 for the top-level message and for a choice argument sub-message, otherwise 1 for the '{'. The value indicates the nesting level, starting with 0 for the main message.

There is always a later MSG_LIMIT part.  

### REPLACE_NUMBER

Added in[API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val REPLACE_NUMBER : MessagePattern.Part.Type
```

Indicates a syntactic (non-escaped) # symbol in a plural variant. When formatting, replace this part's substring with the (value-offset) for the plural argument value. The value is undefined and currently always 0.  

### SKIP_SYNTAX

Added in[API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val SKIP_SYNTAX : MessagePattern.Part.Type
```

Indicates a substring of the pattern string which is to be skipped when formatting. For example, an apostrophe that begins or ends quoted text would be indicated with such a part. The value is undefined and currently always 0.

## Public methods

### hasNumericValue

Added in[API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
fun hasNumericValue(): Boolean
```

Indicates whether this part has a numeric value. If so, then that numeric value can be retrieved via[MessagePattern.getNumericValue(Part)](https://developer.android.com/reference/kotlin/android/icu/text/MessagePattern#getNumericValue(android.icu.text.MessagePattern.Part)).

|                                                           Return                                                           ||
|------------------------------------------------------------------------------------|----------------------------------------|
| [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) | true if this part has a numeric value. |