SharedPreferences preferences = getPreferences(Context.MODE_PRIVATE); String savedString = preferences.getString("floatArray", ""); float[] savedFloats = Float.parseFloat(savedString.substring(1, savedString.length() - 1).split(", "));每一句是什么意思
时间: 2023-06-06 11:07:55 浏览: 123
这是一个关于Android开发中的获取SharedPreferences中保存的浮点型数组的代码片段。第一行是通过Context对象获取SharedPreferences对象,MODE_PRIVATE表示只能被本应用程序使用。第二行是从SharedPreferences中获取保存的字符串数据。第三行是将字符串数据中的浮点型数值提取出来,转换成一个浮点型数组。其中,substring()方法提取了字符串中数组的内容部分,split()方法将内容切割成字符串数组,再通过Float.parseFloat()方法将字符串转换成浮点型数值。
相关问题
SharedPreferences preferences = getPreferences(Context.MODE_PRIVATE);报错Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference如何初始化context对象
您可以在 Activity 或者 Application 中使用 getApplicationContext() 方法获取 Context 对象,然后将其传递给 SharedPreferences 构造函数即可初始化该对象。例如,在 Activity 中,您可以这样写:
```
SharedPreferences preferences = getApplicationContext().getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
```
这样就可以避免上述错误,并成功初始化 SharedPreferences 对象。
class LoginActivity : BaseActivity() { private val accountList = mutableMapOf<String, String>() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_login) supportActionBar?.hide() //记住密码功能 val prefs = getPreferences(Context.MODE_PRIVATE) val isRemember = prefs.getBoolean("remember_password", false) if (isRemember) { val account = prefs.getString("account", "") val password = prefs.getString("password", "") accountEdit.setText(account) passwordEdit.setText(password) rememberPass.isChecked = true }
}
override fun onPause() { super.onPause() //保存账户密码 val editor = getPreferences(Context.MODE_PRIVATE).edit() editor.putBoolean("remember_password", rememberPass.isChecked) editor.putString("account", accountEdit.text.toString()) editor.putString("password", passwordEdit.text.toString()) editor.apply() }
override fun onResume() { super.onResume() //恢复账户密码 val prefs = getPreferences(Context.MODE_PRIVATE) val isRemember = prefs.getBoolean("remember_password", false) if (isRemember) { val account = prefs.getString("account", "") val password = prefs.getString("password", "") accountEdit.setText(account) passwordEdit.setText(password) rememberPass.isChecked = true } }
以上是一个Kotlin语言编写的LoginActivity的部分代码,实现了记住密码的功能。在onCreate()函数中,首先获取SharedPreferences实例,并通过getBoolean()和getString()方法获取记住密码的状态和账号密码信息。在onPause()函数中,将记住密码的状态和账号密码信息保存到SharedPreferences中。在onResume()函数中,同样从SharedPreferences中获取记住密码的状态和账号密码信息,并更新到UI界面上。
需要注意的是,在这段代码中,用到了Kotlin的可空类型(Nullable Type)和安全调用运算符(?.)来避免空指针异常。同时,也体现了Kotlin的函数式编程思想,使用了高阶函数(apply()方法)和Lambda表达式。
阅读全文