getSharedPreferences сохраняет и загружает название виджета

Рейтинг: 0Ответов: 2Опубликовано: 07.01.2023

А нужно чтобы сохранял и загружал числа из 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)

        }       

Ответы

Ответов пока нет.