getSharedPreferences сохраняет и загружает название виджета
А нужно чтобы сохранял и загружал числа из EditText. Как я понял, происходит из-за того что getSharedPreferences в OnCreate, а сама обработка в кнопке, вне OnCreate. Вот это выводит в в поле EditText: androidx.appcompat.widget.AppCompatEditText{d31753f VFED..CL. ........ 0,53-327,177 #7f0800c6 app:id/et_push aid=1073741824}
override fun onCreate(s: Bundle?) {
super.onCreate(s)
bindingclass = ActivityMainBinding.inflate(layoutInflater)
setContentView(bindingclass.root)
Log.d("MyLogMAct", "onCreate")
var sharedPref = getSharedPreferences("myPref", MODE_PRIVATE)
var editor = sharedPref.edit()
bindingclass.apply {
bindingclass.bSaveOfp.setOnClickListener{
var userPush = etPush.toString()
var userPull = etPull.toString()
var userSquad = etSquad.toString()
Log.d("MyLogMAct", "catch после сохранения + $userPush")
editor.apply {
putString("userPush", userPush)
putString("userPull", userPull)
putString("userSquad", userSquad)
apply()
}
}
}
bindingclass.bLoadOfp.setOnClickListener {
var userPush = sharedPref.getString("userPush", null)
var userPull = sharedPref.getString("userPull", null)
var userSquad = sharedPref.getString("userSquad", null)
var userOushTest = userPush
bindingclass.tvPushInfo.setText(userPush)
bindingclass.etPush.setText(userOushTest)
bindingclass.etPull.setText(userPull)
bindingclass.etSquad.setText(userSquad)
Log.d("MyLogMAct", "catch после загрузки + $userOushTest")
}
bindingclass.bClear.setOnClickListener {
editor.clear()
}
}
fun onClickResult(view: View){
push = bindingclass.etPush.text.toString().toInt()
pull = bindingclass.etPull.text.toString().toInt()
squad = bindingclass.etSquad.text.toString().toInt()
abc = bindingclass.etAbc.text.toString().toInt()
exten = bindingclass.etExten.text.toString().toInt()
pushT = resources.getQuantityString(R.plurals.push, push, push)
pullT = resources.getQuantityString(R.plurals.pull, pull, pull)
squatT = resources.getQuantityString(R.plurals.squat, squad,squad)
abcT = resources.getQuantityString(R.plurals.abc, abc, abc)
extenT = resources.getQuantityString(R.plurals.exten, exten,exten)
// поменять на switch перебор
if(push<Constance.onepush || pull<Constance.onepull || squad<Constance.onesquat || abc<Constance.oneabc || exten<Constance.oneexten) {
val result = ofp.onelevel(push, pull, squad, abc, exten) //в результ возвращается значение из OFP.kt
if (result == 1) {
bindingclass.tvTrain.setText(R.string.Train_name1)
bindingclass.tvPushup.text = pushT
bindingclass.tvPull.setText(pullT)
bindingclass.tvSquat.setText(squatT)
bindingclass.tvAbc.setText(abcT)
bindingclass.tvExten.setText(extenT)
}
Источник: Stack Overflow на русском