Android Studio 如何在非活动中从getDefaultSharedPreferences中获取字符串,如普通类?

hts6caw3  于 2022-11-16  发布在  Android
关注(0)|答案(1)|浏览(144)

目前我正在使用我自己的天气API,它在我自己的PC上运行。所以我使用视图模型和androidx.preference.PreferenceScreen.i文本是用EditTextPreference保存的。但是如果我试图从SharedPref中获取保存的字符串,它会崩溃。
下面是引起崩溃的伴随对象函数

setServerAddress() : String {
            val app = this as Application
            val prefs = PreferenceManager.getDefaultSharedPreferences(app)
            val ipInput = prefs.getString(app.getString(R.string.pref_Key_IP_Input), "")?.trim()
            return ipInput.toString()
        }
hrirmatl

hrirmatl1#

你的代码不会运行,因为this as application会失败,除非它实际上是一个Application(伴随对象永远不是)。

setServerAddress(context: Context) : String {
            val prefs = PreferenceManager.getDefaultSharedPreferences(context)
            val ipInput = prefs.getString(app.getString(R.string.pref_Key_IP_Input), "")?.trim()
            return ipInput.toString()
}

相关问题