Как работать с SharedPreferences из функции в отдельном файле. Unresolved reference: getSharedPreferences

Есть отдельный файл с функциями. В одной из функций необходимо работать с SharedPreferences.

fun newFile(): Boolean {

    var flag = false

    val sharedPref: SharedPreferences = getSharedPreferences("setupdate", MODE_PRIVATE)

    sharedPref.getString("name", "").toString()

    return flag
}

Выдает ошибку : Unresolved reference: getUnresolved reference: getSharedPreferences

Как работать с SharedPreferences ?


Ответы (1 шт):

Автор решения: Elizabeth

Метод getSharedPreferences не может быть вызван напрямую в функции, которая не является частью класса, расширяющего Context (например, Activity, Service и т.д.). Вам требуется передать контекст в вашу функцию или вызвать её из контекста, который предоставляет доступ к SharedPreferences. Например:

  1. Передача контекста непосредственно в саму функцию:
fun newFile(context: Context): Boolean {
    var flag = false
    val sharedPref: SharedPreferences = 
    context.getSharedPreferences("setupdate", Context.MODE_PRIVATE)
    ...
  1. Использование функции внутри Activity
class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        
        // Вызов функции newFile с передачей контекста
        val result = newFile(this)
        println("Result: $result")
    }

    fun newFile(context: Context): Boolean {
        var flag = false
        val sharedPref: SharedPreferences = context.getSharedPreferences("setupdate", Context.MODE_PRIVATE)
        val name = sharedPref.getString("name", "")
        ...
→ Ссылка