यह बेवकूफ सवाल होना चाहिए, लेकिन मैं वास्तव में कोटलिन के लिए नया हूं और मुझे कोई समाधान नहीं मिला।संपत्ति को प्रारंभ किया जाना चाहिए या अमूर्त होना चाहिए
कक्षा क्षेत्र कैसे घोषित करें? जैसे हम जावा में यह हो सकता है:
protected SharedPreferences mSharedPreferences;
और बाद में onCreate()
में:
mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
अब मैं इसे उपयोग कर सकते हैं कहीं भी मैं चाहता हूँ (इस आधार गतिविधि के उपवर्गों में)।
मैं Kotlin में भी ऐसा ही करने की कोशिश:
protected var sharedPreferences : SharedPreferences
और onCreate()
में:
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
लेकिन मैं एक चेतावनी मिलती है: "संपत्ति प्रारंभ या सार हो जाना चाहिए"
मैंने कोशिश की रक्षा की वर SharedPreferences उपयोग करने के लिए ": साझा किए गए संदर्भ? = शून्य "और यह भी काम करता है, क्या अंतर है? –
मुझे लगता है कि अगर मैं DI के लिए Dagger2 का उपयोग करता हूं, तो मुझे आपके संस्करण का उपयोग करना होगा, है ना? –
अंतर यह है कि आप देर से डेट के साथ गैर-शून्य मूल्यों की घोषणा कर सकते हैं। –