# DynamicBuilders.DynamicString

Artifact: [androidx.wear.protolayout:protolayout-expression](https://developer.android.com/jetpack/androidx/releases/wear-protolayout) [View Source](https://cs.android.com/search?q=file:androidx/wear/protolayout/expression/DynamicBuilders.java+class:androidx.wear.protolayout.expression.DynamicBuilders.DynamicString) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)

*** ** * ** ***

<br />

```
@RequiresSchemaVersion(major = 1, minor = 200)
interface DynamicBuilders.DynamicString : DynamicBuilders.DynamicType
```

<br />

*** ** * ** ***

Interface defining a dynamic string type.

`https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` string value is subject to being truncated if it's too long.

## Summary

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` | `@https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion(major = 1, minor = 200) https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString#concat(androidx.wear.protolayout.expression.DynamicBuilders.DynamicString)(other: https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString)` Returns a new `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` that has the result of concatenating this `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` with `other`. i.e. `result = this + other` The resulted `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` is subject to being truncated if it's too long. |
| `java-static https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` | `@https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion(major = 1, minor = 200) https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString#constant(java.lang.String)(constant: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Creates a constant-valued `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString`. |
| `java-static https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` | `@https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion(major = 1, minor = 200) https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString#format(java.lang.String,java.lang.Object...)(format: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, args: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html!>)` Equivalent of `https://developer.android.com/reference/java/lang/String.html#format(java.lang.String, java.lang.Object...)` but supports `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicType`s, and returns a `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString`. |
| `java-static https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` | `@https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion(major = 1, minor = 200) https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString#from(androidx.wear.protolayout.expression.DynamicDataKey<androidx.wear.protolayout.expression.DynamicBuilders.DynamicString>)(dynamicDataKey: https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicDataKey<https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString!>)` Creates a `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` that is bound to the value of an item of the State. |
| `java-static https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` | `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString#fromByteArray(byte[])(byteArray: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>)` Creates a `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` from a byte array generated by `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString#toDynamicStringByteArray()`. |
| `java-static https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` | `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString#fromByteArray(byte[],int,int)(byteArray: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>, offset: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Creates a `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` from the provided byte array at the provided offset and length, that was generated by one of the `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString#toDynamicStringByteArray()` overloads. |
| `java-static https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/ConditionScopes.ConditionScope<https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString!, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>` | `@https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion(major = 1, minor = 200) https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString#onCondition(androidx.wear.protolayout.expression.DynamicBuilders.DynamicBool)(condition: https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicBool)` Creates a `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` that is bound to the result of a conditional expression. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>` | `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString#toDynamicStringByteArray()()` Serializes the `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` into a new byte array that can later be used with `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString#fromByteArray(byte[])`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString#toDynamicStringByteArray(byte[])(byteArray: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>)` Serializes the `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` into the provided byte array, returning the amount of bytes written, that can later be used with `DynamicString.fromByteArray( byteArray, 0, bytesWritten)`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString#toDynamicStringByteArray(byte[],int,int)( byteArray: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>, offset: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, length: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html )` Serializes the `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` into the provided byte array, returning the amount of bytes written, limited by the provided offset and length, that can later be used with `DynamicString.fromByteArray(byteArray, offset, bytesWritten)`. |

| ### Extension functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/types/LayoutString` | `@https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion(major = 1, minor = 600) https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString.https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString#(androidx.wear.protolayout.expression.DynamicBuilders.DynamicString).asLayoutString(kotlin.String)(staticValue: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Extension for creating a `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/types/LayoutString` from a `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` |
| `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/types/LayoutString` | `@https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion(major = 1, minor = 200) https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString.https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString#(androidx.wear.protolayout.expression.DynamicBuilders.DynamicString).asLayoutString(kotlin.String,androidx.wear.protolayout.TypeBuilders.StringLayoutConstraint)( staticValue: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, layoutConstraint: https://developer.android.com/reference/kotlin/androidx/wear/protolayout/TypeBuilders.StringLayoutConstraint )` Extension for creating a `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/types/LayoutString` from a `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` |

## Public functions

### concat

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)

```
@RequiresSchemaVersion(major = 1, minor = 200)
fun concat(other: DynamicBuilders.DynamicString): DynamicBuilders.DynamicString
```

Returns a new `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` that has the result of concatenating this `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` with `other`. i.e. `result = this + other` The resulted `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` is subject to being truncated if it's too long.

| Parameters |
|---|---|
| `other: https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` | The right hand side operand of the concatenation. |

### constant

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)

```
@RequiresSchemaVersion(major = 1, minor = 200)
java-static fun constant(constant: String): DynamicBuilders.DynamicString
```

Creates a constant-valued `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString`. The resulted `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` is subject to being truncated if it's too long.

### format

```
@RequiresSchemaVersion(major = 1, minor = 200)
java-static fun format(format: String, args: Array<Any!>): DynamicBuilders.DynamicString
```

Equivalent of `https://developer.android.com/reference/java/lang/String.html#format(java.lang.String, java.lang.Object...)` but supports `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicType`s, and returns a `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString`.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/util/DynamicFormatter` |   |

### from

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)

```
@RequiresSchemaVersion(major = 1, minor = 200)
java-static fun from(dynamicDataKey: DynamicDataKey<DynamicBuilders.DynamicString!>): DynamicBuilders.DynamicString
```

Creates a `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` that is bound to the value of an item of the State. The resulted `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` is subject to being truncated if it's too long.

| Parameters |
|---|---|
| `dynamicDataKey: https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicDataKey<https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString!>` | The source key to a `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicDataBuilders.DynamicDataValue` with a string value. |

### fromByteArray

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)

```
java-static fun fromByteArray(byteArray: ByteArray<Byte>): DynamicBuilders.DynamicString
```

Creates a `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` from a byte array generated by `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString#toDynamicStringByteArray()`.

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException.html` | if the byte array does not contain a valid serialization |

### fromByteArray

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)

```
java-static fun fromByteArray(byteArray: ByteArray<Byte>, offset: Int, length: Int): DynamicBuilders.DynamicString
```

Creates a `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` from the provided byte array at the provided offset and length, that was generated by one of the `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString#toDynamicStringByteArray()` overloads.

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException.html` | if the byte array does not contain a valid serialization in the provided offset and length |

### onCondition

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)

```
@RequiresSchemaVersion(major = 1, minor = 200)
java-static fun onCondition(condition: DynamicBuilders.DynamicBool): ConditionScopes.ConditionScope<DynamicBuilders.DynamicString!, String!>
```

Creates a `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` that is bound to the result of a conditional expression. It will use the value given in either `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/ConditionScopes.ConditionScope#use(T)` or `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/ConditionScopes.IfTrueScope#elseUse(T)` depending on the value yielded from ` condition`.

| Parameters |
|---|---|
| `condition: https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicBool` | The value used for evaluting this condition. |

### toDynamicStringByteArray

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)

```
fun toDynamicStringByteArray(): Array<Byte>
```

Serializes the `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` into a new byte array that can later be used with `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString#fromByteArray(byte[])`.

### toDynamicStringByteArray

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)

```
fun toDynamicStringByteArray(byteArray: ByteArray<Byte>): Int
```

Serializes the `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` into the provided byte array, returning the amount of bytes written, that can later be used with `DynamicString.fromByteArray( byteArray, 0, bytesWritten)`.

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException.html` | if the byte array is too small |

### toDynamicStringByteArray

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)

```
fun toDynamicStringByteArray(
    byteArray: ByteArray<Byte>,
    offset: Int,
    length: Int
): Int
```

Serializes the `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString` into the provided byte array, returning the amount of bytes written, limited by the provided offset and length, that can later be used with `DynamicString.fromByteArray(byteArray, offset, bytesWritten)`.

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException.html` | if the byte array is too small |

## Extension functions

### DynamicBuilders.DynamicString.asLayoutString

Artifact: [androidx.wear.protolayout:protolayout](https://developer.android.com/jetpack/androidx/releases/wear-protolayout) [View Source](https://cs.android.com/search?q=file:androidx/wear/protolayout/types/LayoutString.kt+function:asLayoutString)

```
@RequiresSchemaVersion(major = 1, minor = 600)
fun DynamicBuilders.DynamicString.asLayoutString(staticValue: String): LayoutString
```

Extension for creating a `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/types/LayoutString` from a `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString`

| Parameters |
|---|---|
| `staticValue: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | the static value that can be used when the `dynamicValue` can't be resolved. |

### DynamicBuilders.DynamicString.asLayoutString

Artifact: [androidx.wear.protolayout:protolayout](https://developer.android.com/jetpack/androidx/releases/wear-protolayout) [View Source](https://cs.android.com/search?q=file:androidx/wear/protolayout/types/LayoutString.kt+function:asLayoutString)

```
@RequiresSchemaVersion(major = 1, minor = 200)
fun DynamicBuilders.DynamicString.asLayoutString(
    staticValue: String,
    layoutConstraint: TypeBuilders.StringLayoutConstraint
): LayoutString
```

Extension for creating a `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/types/LayoutString` from a `https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString`

| Parameters |
|---|---|
| `staticValue: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | the static value that can be used when the `dynamicValue` can't be resolved. |
| `layoutConstraint: https://developer.android.com/reference/kotlin/androidx/wear/protolayout/TypeBuilders.StringLayoutConstraint` | used to correctly measure layout Text element size and align text to ensure that the layout is of a known size during the layout pass regardless of the `dynamicValue` String. |