我需要我的应用程序保存图像和未来文本字段的状态,以便当用户关闭应用程序甚至重新启动手机时,数据仍然存在。这有点像日记。
class stageOne1 : AppCompatActivity() {
private lateinit var manifestImage: ImageView
companion object {
const val IMAGE_REQUEST_CODE = 100
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_stage_one1)
manifestImage = findViewById(R.id.manifestImage)
manifestImage.setOnClickListener{
pickImageGallery()
}
}
private fun pickImageGallery(){
val intent = Intent(Intent.ACTION_PICK)
intent.type = "image/*"
startActivityForResult(intent, IMAGE_REQUEST_CODE)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?){
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == IMAGE_REQUEST_CODE && resultCode == RESULT_OK){
manifestImage.setImageURI(data?.data)
}
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
}
override fun onRestoreInstanceState(
savedInstanceState: Bundle?,
persistentState: PersistableBundle?
) {
super.onRestoreInstanceState(savedInstanceState, persistentState)
}
}
如果您需要查看我的 XML,请告诉我。
提前致谢。
您可以使用共享首选项,这将帮助您在关闭以及重新启动手机时保存应用程序的状态,但请确保如果删除应用程序的数据或卸载它,则其数据将会丢失。
sharedPreferences就是通过这种方式来存储的
SharedPreferences sharedPreferences = getSharedPreferences("login_prefs", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("isLoggedIn", true);
editor.apply();
这里您也可以使用字符串值来代替 putBoolean
这是检索它的方法
SharedPreferences sharedPreferences = getSharedPreferences("login_prefs", MODE_PRIVATE);
boolean isLoggedIn = sharedPreferences.getBoolean("isLoggedIn",false);
通过使用它,请确保应用程序的层次结构或流程是按顺序排列的,否则您将面临错误