如何访问对象内部的共享首选项
How to access shared preferences inside object
我正在尝试访问对象内的 gson json 共享首选项。我不知道如何访问它。
这是我在片段中访问共享首选项的代码。
val gson = Gson()
val json = sharedPreferences.getString("loclists", "")
val type = object: TypeToken<MutableList<LatLng>>() {}.type
if(json == null || json == "")
loclists = mutableListOf<LatLng>()
else
loclists = gson.fromJson(json, type)
```
这是我的对象class。我正在尝试访问 calculateTheDistance
函数内的共享首选项。我在键入 requireContext() 时遇到错误。
val PREFS_FILENAME = "com.app.app.prefs"
private var loclistsDT= mutableListOf<LatLng>()
fun calculateTheDistance(locationList: MutableList<LatLng>): String {
val sharedPreferences = requireContext().getSharedPreferences(PREFS_FILENAME, 0)
val gson = Gson()
val json = sharedPreferences.getString("loclists", "")
val type = object : TypeToken<MutableList<LatLng>>() {}.type
if (json == null || json == "")
loclistsDT = mutableListOf<LatLng>()
else
loclistsDT = gson.fromJson(json, type)
if(locListsDT.size > 1){
val meters =
SphericalUtil.computeDistanceBetween(locListsDT.first(), locListsDT.last())
val kilometers = meters / 1000
return DecimalFormat("#.##").format(kilometers)
}
return "0.00"
}
} ```
如果您无法访问 application
,请在您的函数 calculateTheDistance
中传递 activity 的上下文,这就是
fun calculateTheDistance(mContext : Context , locationList: MutableList<LatLng>): String {
val sharedPreferences = mContext.getSharedPreferences(PREFS_FILENAME, 0)
val gson = Gson()
val json = sharedPreferences.getString("loclists", "")
val type = object : TypeToken<MutableList<LatLng>>() {}.type
if (json == null || json == "")
loclistsDT = mutableListOf<LatLng>()
else
loclistsDT = gson.fromJson(json, type)
if(locListsDT.size > 1){
val meters =
SphericalUtil.computeDistanceBetween(locListsDT.first(), locListsDT.last())
val kilometers = meters / 1000
return DecimalFormat("#.##").format(kilometers)
}
return "0.00"
}
}
如果使用此功能,请在您的参数中添加 requireContext
(如果来自片段)或 this
(如果来自 activity)。
我正在尝试访问对象内的 gson json 共享首选项。我不知道如何访问它。 这是我在片段中访问共享首选项的代码。
val gson = Gson()
val json = sharedPreferences.getString("loclists", "")
val type = object: TypeToken<MutableList<LatLng>>() {}.type
if(json == null || json == "")
loclists = mutableListOf<LatLng>()
else
loclists = gson.fromJson(json, type)
```
这是我的对象class。我正在尝试访问 calculateTheDistance
函数内的共享首选项。我在键入 requireContext() 时遇到错误。
val PREFS_FILENAME = "com.app.app.prefs"
private var loclistsDT= mutableListOf<LatLng>()
fun calculateTheDistance(locationList: MutableList<LatLng>): String {
val sharedPreferences = requireContext().getSharedPreferences(PREFS_FILENAME, 0)
val gson = Gson()
val json = sharedPreferences.getString("loclists", "")
val type = object : TypeToken<MutableList<LatLng>>() {}.type
if (json == null || json == "")
loclistsDT = mutableListOf<LatLng>()
else
loclistsDT = gson.fromJson(json, type)
if(locListsDT.size > 1){
val meters =
SphericalUtil.computeDistanceBetween(locListsDT.first(), locListsDT.last())
val kilometers = meters / 1000
return DecimalFormat("#.##").format(kilometers)
}
return "0.00"
}
} ```
如果您无法访问 application
,请在您的函数 calculateTheDistance
中传递 activity 的上下文,这就是
fun calculateTheDistance(mContext : Context , locationList: MutableList<LatLng>): String {
val sharedPreferences = mContext.getSharedPreferences(PREFS_FILENAME, 0)
val gson = Gson()
val json = sharedPreferences.getString("loclists", "")
val type = object : TypeToken<MutableList<LatLng>>() {}.type
if (json == null || json == "")
loclistsDT = mutableListOf<LatLng>()
else
loclistsDT = gson.fromJson(json, type)
if(locListsDT.size > 1){
val meters =
SphericalUtil.computeDistanceBetween(locListsDT.first(), locListsDT.last())
val kilometers = meters / 1000
return DecimalFormat("#.##").format(kilometers)
}
return "0.00"
}
}
如果使用此功能,请在您的参数中添加 requireContext
(如果来自片段)或 this
(如果来自 activity)。