package com.example.acer.test
import android.content.Context
import android.content.SharedPreferences
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
private var sharedP: SharedPreferences? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
btn_add.setOnClickListener {
sharedP = getSharedPreferences("addData", Context.MODE_PRIVATE)
var myEditor = sharedP?.edit()
myEditor?.putString("product_name" , et_productname.text.toString())
myEditor?.commit()
Toast.makeText(this@MainActivity, "The product is saved" , Toast.LENGTH_SHORT).show()
}
btn_get.setOnClickListener {
et_getproduct.text = sharedP?.getString("product_name","null")
}
}
}
Мне нужно прочитать строку из общих настроек в Kotlin, но она показывает следующую ошибку: Ошибка: (29, 34) Несоответствие типов: выводится тип String? но редактируемый! ожидалось
Эта строка заставляет ваш код не работать.
et_getproduct.text = sharedP?.getString("product_name","null")
Чтобы установить текст для EditText
в Android.
btn_get.setOnClickListener {
val productName = sharedP?.getString("product_name", "null") ?: "null"
et_getproduct.setText(productName)
}