# InputSignInMethod.Builder

Artifact: [androidx.car.app:app](https://developer.android.com/jetpack/androidx/releases/car-app) [View Source](https://cs.android.com/search?q=file:androidx/car/app/model/signin/InputSignInMethod.java+class:androidx.car.app.model.signin.InputSignInMethod.Builder) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/car-app#1.0.0)

*** ** * ** ***


```
public final class InputSignInMethod.Builder
```

<br />

*** ** * ** ***

A builder of `https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod`.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod.Builder#Builder(androidx.car.app.model.InputCallback)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/car/app/model/InputCallback listener)` Returns an `https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod.Builder` instance. |

| ### Public methods |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod` | `https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod.Builder#build()()` Builds an `https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod` instance. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod.Builder` | `https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod.Builder#setDefaultValue(java.lang.String)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/String.html defaultValue)` Sets the default value for this input. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod.Builder` | `https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod.Builder#setErrorMessage(java.lang.CharSequence)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/CharSequence.html message)` Sets the error message associated with this input box. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod.Builder` | `https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod.Builder#setHint(java.lang.CharSequence)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/CharSequence.html hint)` Sets the text explaining to the user what should be entered in this input box. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod.Builder` | `https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod.Builder#setInputType(int)(int inputType)` Sets the input type. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod.Builder` | `https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod.Builder#setKeyboardType(int)(int keyboardType)` Sets the keyboard type to display when this input box gets focused. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod.Builder` | `https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod.Builder#setShowKeyboardByDefault(boolean)(boolean showKeyboardByDefault)` Sets whether keyboard should be opened by default when this template is presented. |

## Public constructors

### Builder

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/car-app#1.1.0)

```
public Builder(@NonNull InputCallback listener)
```

Returns an `https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod.Builder` instance.

Note that the listener relates to UI events and will be executed on the main thread using `https://developer.android.com/reference/android/os/Looper.html#getMainLooper()`.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/car/app/model/InputCallback listener` | the `https://developer.android.com/reference/androidx/car/app/model/InputCallbackDelegate` to be notified of input events |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/NullPointerException.html` | if `listener` is `null` |

## Public methods

### build

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

```
public @NonNull InputSignInMethod build()
```

Builds an `https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod` instance.

### setDefaultValue

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

```
public @NonNull InputSignInMethod.Builder setDefaultValue(@NonNull String defaultValue)
```

Sets the default value for this input.

Unless set with this method, the input box will not have a default value.

For `https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod#INPUT_TYPE_PASSWORD()` input types, in order to indicate that is not empty it is recommended to use a special value rather the actual credential. Any user input on a `https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod#INPUT_TYPE_PASSWORD()` input box will replace this default value instead of appending to it.

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/NullPointerException.html` | if `defaultValue` is `null` |

### setErrorMessage

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/car-app#1.1.0)

```
public @NonNull InputSignInMethod.Builder setErrorMessage(@NonNull CharSequence message)
```

Sets the error message associated with this input box.

For example, this can be used to indicate formatting errors, wrong username or password or any other problem related to the user input.

#### Requirements

Error messages can have only up to 2 lines of text, amd additional texts beyond the second line may be truncated.

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

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/NullPointerException.html` | if `message` is `null` |

### setHint

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/car-app#1.1.0)

```
public @NonNull InputSignInMethod.Builder setHint(@NonNull CharSequence hint)
```

Sets the text explaining to the user what should be entered in this input box.

Unless set with this method, the sign-in method will not show any hint.

Spans are supported in the input string.

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/NullPointerException.html` | if `hint` is `null` |

### setInputType

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

```
public @NonNull InputSignInMethod.Builder setInputType(int inputType)
```

Sets the input type.

This must be one of `https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod#INPUT_TYPE_DEFAULT()` or `https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod#INPUT_TYPE_PASSWORD()`

If not set, `https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod#INPUT_TYPE_DEFAULT()` will be assumed.

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException.html` | if the provided input type is not supported |

### setKeyboardType

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

```
public @NonNull InputSignInMethod.Builder setKeyboardType(int keyboardType)
```

Sets the keyboard type to display when this input box gets focused.

This must be one of `https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod#KEYBOARD_DEFAULT()`, `https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod#KEYBOARD_PHONE()`, `https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod#KEYBOARD_NUMBER()`, or `https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod#KEYBOARD_EMAIL()`. A host might fall back to `https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod#KEYBOARD_DEFAULT()` if they do not support a particular keyboard type. If not provided, `https://developer.android.com/reference/androidx/car/app/model/signin/InputSignInMethod#KEYBOARD_DEFAULT()` will be used.

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException.html` | if the provided type is not supported |

### setShowKeyboardByDefault

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

```
public @NonNull InputSignInMethod.Builder setShowKeyboardByDefault(boolean showKeyboardByDefault)
```

Sets whether keyboard should be opened by default when this template is presented. By default, keyboard will only be opened if the user focuses on the input box.