如何将 SecondActivity 值返回到像开始时一样的状态



我有SecondActitivity,当它开始时,我分配特定的值:listTitle,dbJustForPlaing,currentCursorPosition,numberA等。

 class  SecondActivity : OptionMenuHelper() {
val listTitle: String by lazy { intent.getStringExtra(Values.listTitle) }
lateinit var dbJustForPlaing: DataBaseJustForPlaying
var currentCursorPosition: Int = -1
lateinit var cursorOfWholeList: Cursor
var lastCursorPosition: Int = -1
lateinit var oneRowCursor: Cursor
var numberA = 0
var numberB = 0
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_personal_test)
//some functions
}
}

在使用此活动期间,变量正在更改。现在我想向SecondActivity添加按钮,如果用户按下它,所有变量都必须返回到与活动刚开始时相同的状态。最好的方法是什么?

我可以这样做:

            fun startNewActitivy(){
    val intent = Intent(this, SecondActitivity::class.java)
    intent.putExtra("listTitle", listTitle)
    startActivity(intent)
    finish
     }

但我不确定这是否是正确的做法。我需要一段代码,这将有助于将来轻松支持我的应用程序,并且还可以有效地消耗设备资源

正如Peyman在评论中指出的那样,只需创建一个设置变量默认值的函数。大致如下

fun setVariableDefaultValues() {
    currentCursorPosition = -1
    lastCursorPosition = -1
    numberA = 0
    numberB = 0
}

然后,可以在要重置值的任何位置调用 setVariableDefaultValues() 方法。

相关内容

最新更新