我正在我的应用程序中实现用户注册系统,并希望将用户数据逐步保存在名为“ UserProfile”的类中。
我设法创建了一个类并声明了它的对象,但是当我单击按钮时,应用程序没有响应。我的代码没有显示错误。我想我无法正确声明该类的对象。
class RegisterActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_register)
class UserProfile {
private lateinit var username: String
private lateinit var mobile: String
private lateinit var email: String
private lateinit var address1: String
private lateinit var address2: String
private lateinit var gender: String
fun add(data:String,i:Int){
when (i){
1 -> username = data
2 -> mobile = data
3 -> email = data
4 -> address1 = data
5 -> address2 = data
6 -> gender = data
}
}
}
var registrationStep= 1
lateinit var user: UserProfile
val inputBox = findViewById<EditText>(R.id.editText)
val textBox = findViewById<TextView>(R.id.textView)
val data = inputBox.text.toString()
val nextBTN = findViewById<Button>(R.id.NextBtn)
nextBTN.setOnClickListener {
println("Clicked Listener2")
user.add(data,registrationStep)
when (registrationStep){
1 -> textBox.text = getString(R.string.register1)
2 -> textBox.text = getString(R.string.register2)
3 -> textBox.text = getString(R.string.register3)
4 -> textBox.text = getString(R.string.register4)
5 -> textBox.text = getString(R.string.register5)
6 -> textBox.text = getString(R.string.register6)
}
registrationStep += 1
}
}
}
我希望在按下“按钮”按钮时,将“ EditText”值保存在类中,并且将更改“ TextView”的文本。但是,相反,当我单击“按钮”按钮时,应用程序会继续关闭而不响应。
答案 0 :(得分:0)
您需要在使用前实例化类的对象。声明不等同。因此,替换
lateinit var user: UserProfile
使用
var user: UserProfile = UserProfile()