मैं ViewModel का उपयोग करके एक एंड्रॉइड ऐप विकसित कर रहा हूं लेकिन मुझे अपने प्रोजेक्ट के नीचे निम्न त्रुटि मिल रही हैviewmodelfactory error.

मेरे व्यूमोडेल कार्यान्वयन के नीचे

import android.app.Activity
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.ViewModelStoreOwner

fun <T : ViewModel> Activity.obtainViewModel(viewModelClass: Class<T>): T {
    val todoRepository = (this.application as TodoApplication).todoRepository
    return ViewModelProvider(this as ViewModelStoreOwner, ViewModelFactory(todoRepository)).get(
        viewModelClass
    )

}

मैं जानना चाहता हूं कि मैं कहां त्रुटि उत्पन्न कर रहा हूं।

मैंने जो कोशिश की है उसके नीचे

import android.app.Activity
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.ViewModelStoreOwner

fun <T : ViewModel> Activity.obtainViewModel(viewModelClass: Class<T>): T {
    val todoRepository = (this.application as TodoApplication).todoRepository
    return ViewModelProvider(this as ViewModelStoreOwner, ViewModelProvider.Factory.get(todoRepository,
        viewModelClass
    ))

}

और निम्न त्रुटि हो रही है प्रकार मेल नहीं खाता: अनुमानित प्रकार ViewModelProvider है लेकिन टी अपेक्षित था

-1
Hacker One 18 मार्च 2021, 10:53

1 उत्तर

सबसे बढ़िया उत्तर

अगर आप दस्तावेज़ीकरण को देखें तो ViewModelProvider कंस्ट्रक्टर दो पैरामीटर लेता है। दूसरा ViewModelProvider.Factory है। ViewModelFactory(todoRepository) को ViewModelProvider.Factory के इंस्टेंस से बदलें

fun <T : ViewModel> AppCompatActivity.obtainViewModel(viewModelClass: Class<T>): T {
        return ViewModelProvider(this).get(viewModelClass)
    }
0
Nicola Gallazzi 18 मार्च 2021, 11:46
मुझे निम्न त्रुटि मिल रही है प्रकार मेल नहीं खाता: अनुमानित प्रकार ViewModelProvider है लेकिन टी अपेक्षित था:
 – 
Hacker One
18 मार्च 2021, 11:31
क्या आप समझा सकते हैं कि आपने कोडिंग नमूने के साथ क्या कहा है
 – 
Hacker One
18 मार्च 2021, 11:34
कृपया अपना कोड और प्रश्न में त्रुटि को काटें और चिपकाएँ
 – 
Nicola Gallazzi
18 मार्च 2021, 11:36