blob: 93f79eeeed534c1283477fca36716f4e1996949e [file] [log] [blame]
<html devsite="true">
<head>
<title>ViewModelProvider.NewInstanceFactory</title>
{% setvar book_path %}/reference/androidx/_book.yaml{% endsetvar %}
{% include "_shared/_reference-head-tags.html" %}
</head>
<body>
<div id="metadata-info-block"></div>
<h1>ViewModelProvider.NewInstanceFactory</h1>
<p>
<pre>public class <a href="/reference/androidx/lifecycle/ViewModelProvider.NewInstanceFactory.html">ViewModelProvider.NewInstanceFactory</a> implements <a href="/reference/androidx/lifecycle/ViewModelProvider.Factory.html">ViewModelProvider.Factory</a></pre>
</p>
<div class="devsite-table-wrapper"><devsite-expandable><span class="expand-control jd-sumtable-subclasses">Known direct subclasses
<div class="showalways" id="subclasses-direct"><a href="/reference/androidx/lifecycle/ViewModelProvider.AndroidViewModelFactory.html">ViewModelProvider.AndroidViewModelFactory</a></div>
</span>
<div id="subclasses-direct-summary">
<div class="devsite-table-wrapper">
<table class="responsive">
<colgroup>
<col width="40%">
<col>
</colgroup>
<tbody class="list">
<tr>
<td width="40%"><code><a href="/reference/androidx/lifecycle/ViewModelProvider.AndroidViewModelFactory.html">ViewModelProvider.AndroidViewModelFactory</a></code></td>
<td>
<p><code><a href="/reference/androidx/lifecycle/ViewModelProvider.Factory.html">Factory</a></code> which may create <code><a href="/reference/androidx/lifecycle/AndroidViewModel.html">AndroidViewModel</a></code> and <code><a href="/reference/androidx/lifecycle/ViewModel.html">ViewModel</a></code>, which have an empty constructor.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</devsite-expandable> </div>
<hr>
<p>Simple factory, which calls empty constructor on the give class.</p>
<h2>Summary</h2>
<div class="devsite-table-wrapper">
<table class="responsive">
<colgroup>
<col width="40%">
<col>
</colgroup>
<thead>
<tr>
<th colspan="100%"><h3>Nested types</h3></th>
</tr>
</thead>
<tbody class="list">
<tr>
<td>
<div><code>public static class <a href="/reference/androidx/lifecycle/ViewModelProvider.NewInstanceFactory.Companion.html">ViewModelProvider.NewInstanceFactory.Companion</a></code></div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="devsite-table-wrapper">
<table class="responsive">
<colgroup>
<col width="40%">
<col>
</colgroup>
<thead>
<tr>
<th colspan="100%"><h3>Public fields</h3></th>
</tr>
</thead>
<tbody class="list">
<tr>
<td width="40%"><code>final @<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/lifecycle/viewmodel/CreationExtras.Key.html">CreationExtras.Key</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/String.html">String</a>&gt;</code></td>
<td>
<div><code><a href="/reference/androidx/lifecycle/ViewModelProvider.NewInstanceFactory.Companion.html#VIEW_MODEL_KEY()">VIEW_MODEL_KEY</a></code></div>
<p>A <code><a href="/reference/androidx/lifecycle/viewmodel/CreationExtras.Key.html">CreationExtras.Key</a></code> to get a key associated with a requested <code>ViewModel</code> from <code><a href="/reference/androidx/lifecycle/viewmodel/CreationExtras.html">CreationExtras</a></code></p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="devsite-table-wrapper">
<table class="responsive">
<colgroup>
<col width="40%">
<col>
</colgroup>
<thead>
<tr>
<th colspan="100%"><h3>Public constructors</h3></th>
</tr>
</thead>
<tbody class="list">
<tr>
<td>
<div><code><a href="/reference/androidx/lifecycle/ViewModelProvider.NewInstanceFactory.html#NewInstanceFactory()">NewInstanceFactory</a>()</code></div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="devsite-table-wrapper">
<table class="responsive">
<colgroup>
<col width="40%">
<col>
</colgroup>
<thead>
<tr>
<th colspan="100%"><h3>Public methods</h3></th>
</tr>
</thead>
<tbody class="list">
<tr>
<td width="40%"><code>@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T</code></td>
<td>
<div><code>&lt;T&nbsp;extends&nbsp;<a href="/reference/androidx/lifecycle/ViewModel.html">ViewModel</a>&gt; <a href="/reference/androidx/lifecycle/ViewModelProvider.NewInstanceFactory.html#create(java.lang.Class)">create</a>(@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/Class.html">Class</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;modelClass)</code></div>
<p>Creates a new instance of the given <code>Class</code>.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="devsite-table-wrapper">
<table class="responsive" id="inhmethods">
<thead>
<tr>
<th colspan="100%"><h3>Inherited methods</h3></th>
</tr>
</thead>
<tbody class="list">
<tr>
<td><devsite-expandable><span class="expand-control">From <a href="/reference/androidx/lifecycle/ViewModelProvider.Factory.html">androidx.lifecycle.ViewModelProvider.Factory</a></span>
<div class="devsite-table-wrapper">
<table class="responsive">
<colgroup>
<col width="40%">
<col>
</colgroup>
<tbody class="list">
<tr>
<td width="40%"><code>@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T</code></td>
<td>
<div><code>&lt;T&nbsp;extends&nbsp;<a href="/reference/androidx/lifecycle/ViewModel.html">ViewModel</a>&gt; <a href="/reference/androidx/lifecycle/ViewModelProvider.Factory.html#create(java.lang.Class,androidx.lifecycle.viewmodel.CreationExtras)">create</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/Class.html">Class</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;modelClass,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/lifecycle/viewmodel/CreationExtras.html">CreationExtras</a>&nbsp;extras<br>)</code></div>
<p>Creates a new instance of the given <code>Class</code>.</p>
</td>
</tr>
</tbody>
</table>
</div>
</devsite-expandable> </td>
</tr>
</tbody>
</table>
</div>
<div class="list">
<h2>Public fields</h2>
<div class="api-item"><a name="getVIEW_MODEL_KEY()"></a><a name="setVIEW_MODEL_KEY()"></a><a name="getVIEW_MODEL_KEY--"></a><a name="setVIEW_MODEL_KEY--"></a>
<h3 class="api-name" id="VIEW_MODEL_KEY()">VIEW_MODEL_KEY</h3>
<pre class="api-signature no-pretty-print">public&nbsp;final&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/lifecycle/viewmodel/CreationExtras.Key.html">CreationExtras.Key</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/String.html">String</a>&gt;&nbsp;<a href="/reference/androidx/lifecycle/ViewModelProvider.NewInstanceFactory.Companion.html#VIEW_MODEL_KEY()">VIEW_MODEL_KEY</a></pre>
<p>A <code><a href="/reference/androidx/lifecycle/viewmodel/CreationExtras.Key.html">CreationExtras.Key</a></code> to get a key associated with a requested <code>ViewModel</code> from <code><a href="/reference/androidx/lifecycle/viewmodel/CreationExtras.html">CreationExtras</a></code></p>
<p><code>ViewModelProvider</code> automatically puts a key that was passed to <code>ViewModelProvider.get(key, MyViewModel::class.java)</code> or generated in <code>ViewModelProvider.get(MyViewModel::class.java)</code> to the <code>CreationExtras</code> that are passed to <code><a href="/reference/androidx/lifecycle/ViewModelProvider.Factory.html">ViewModelProvider.Factory</a></code>.</p>
</div>
</div>
<div class="list">
<h2>Public constructors</h2>
<div class="api-item"><a name="NewInstanceFactory--"></a><a name="newinstancefactory"></a>
<h3 class="api-name" id="NewInstanceFactory()">NewInstanceFactory</h3>
<pre class="api-signature no-pretty-print">public&nbsp;<a href="/reference/androidx/lifecycle/ViewModelProvider.NewInstanceFactory.html#NewInstanceFactory()">NewInstanceFactory</a>()</pre>
</div>
</div>
<div class="list">
<h2>Public methods</h2>
<div class="api-item"><a name="create-java.lang.Class-"></a><a name="create"></a>
<h3 class="api-name" id="create(java.lang.Class)">create</h3>
<pre class="api-signature no-pretty-print">public&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&nbsp;&lt;T&nbsp;extends&nbsp;<a href="/reference/androidx/lifecycle/ViewModel.html">ViewModel</a>&gt; <a href="/reference/androidx/lifecycle/ViewModelProvider.NewInstanceFactory.html#create(java.lang.Class)">create</a>(@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/Class.html">Class</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;modelClass)</pre>
<p>Creates a new instance of the given <code>Class</code>.</p>
<p>Default implementation throws <code><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unsupported-operation-exception/index.html">UnsupportedOperationException</a></code>.</p>
<div class="devsite-table-wrapper">
<table class="responsive">
<colgroup>
<col width="40%">
<col>
</colgroup>
<thead>
<tr>
<th colspan="100%">Parameters</th>
</tr>
</thead>
<tbody class="list">
<tr>
<td width="40%"><code>@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/Class.html">Class</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;modelClass</code></td>
<td>
<p>a <code>Class</code> whose instance is requested</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="devsite-table-wrapper">
<table class="responsive">
<colgroup>
<col width="40%">
<col>
</colgroup>
<thead>
<tr>
<th colspan="100%">Returns</th>
</tr>
</thead>
<tbody class="list">
<tr>
<td width="40%"><code>@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T</code></td>
<td>
<p>a newly created ViewModel</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</body>
</html>