按钮将评分保存到共享首选项并在重新访问活动时显示以前的评分

问题描述

MainActivity 有 RecyclerView 项目,当项目被点击时,它会转到详细的活动,其中有 ratingBar 和后退按钮将评级保存到共享首选项并在重新访问活动时显示以前的评级。 我在 MainActivity 中使用了 intent.putExtra("KEY",item.keyName),因此在将评级从评级栏保存到共享首选项时,我可以使用此字符串作为项目映射键。但是当点击 RecyclerView 项目时,应用程序崩溃了,我收到了 kotlin.KotlinNullPointerException 错误。 这是加载和保存功能

    private fun saveData(){
        val insertedFloat = rating_bar.rating.toString()
        rating.text = insertedFloat

        val sharedPreferences =  getSharedPreferences("sharedPrefs",Context.MODE_PRIVATE)
        val editor = sharedPreferences.edit()
        val stringKey = intent.getStringExtra("KEY")
        editor.apply{
            putString(stringKey,insertedFloat)
        }.apply()
    }
    private fun loadData(){
        val sharedPreferences =  getSharedPreferences("sharedPrefs",Context.MODE_PRIVATE)
        val stringKey = intent.getStringExtra("KEY")
        val savedString = sharedPreferences.getString(stringKey,null)

        rating.text = savedString
        rating_bar.rating = savedString!!.toFloat()

    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...