无法从编辑文本中获取数据,Android Koltin

问题描述 投票:0回答:1

当我试图从edittext中获取数据时,我得到了null数据,这是我的代码。

class LoginActivity : AppCompatActivity() {
lateinit var etUsername : EditText
lateinit var etPassword : EditText
var username = ""
var password = ""
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_login)
    etPassword = findViewById(R.id.tanggalLahir) as EditText
    etUsername = findViewById(R.id.nomerInduk) as EditText
    username = etUsername.text.toString()
    password = etPassword.text.toString()

    buttonLogin.setOnClickListener() {
        if (username.isEmpty()){
            Log.d("User", "Username = $username")
            nomerInduk.error = "Nomor Induk Kosong!"
            return@setOnClickListener
        }

        if (password.isEmpty()){
            Log.d("User", "Password = $password")
            tanggalLahir.error = "Tanggal Lahir Kosong!"
            return@setOnClickListener
        }

        login(username,password)
    }


}

当我检查日志时,有图像检查记录

我已经将edittext改为textinputedittext,但还是一样。

android kotlin android-edittext android-textinputedittext
1个回答
0
投票
class LoginActivity : AppCompatActivity() {
lateinit var etUsername : EditText
lateinit var etPassword : EditText
var username = ""
var password = ""
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_login)
    etPassword = findViewById(R.id.tanggalLahir) as EditText
    etUsername = findViewById(R.id.nomerInduk) as EditText


    buttonLogin.setOnClickListener() {
username = etUsername.text.toString()
    password = etPassword.text.toString()
        if (username.isEmpty()){
            Log.d("User", "Username = $username")
            nomerInduk.error = "Nomor Induk Kosong!"
            return@setOnClickListener
        }

        if (password.isEmpty()){
            Log.d("User", "Password = $password")
            tanggalLahir.error = "Tanggal Lahir Kosong!"
            return@setOnClickListener
        }

        login(username,password)
    }


}

0
投票
class LoginActivity : AppCompatActivity() {
lateinit var etUsername : EditText
lateinit var etPassword : EditText
var username = ""
var password = ""
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_login)
    etPassword = findViewById(R.id.tanggalLahir) as EditText
    etUsername = findViewById(R.id.nomerInduk) as EditText


    buttonLogin.setOnClickListener() {
    // once button click you have to get the current text value from the edit text what you have entered. 
    username = etUsername.text.toString()
    password = etPassword.text.toString()
        if (username.isEmpty()){
            Log.d("User", "Username = $username")
            nomerInduk.error = "Nomor Induk Kosong!"
            return@setOnClickListener
        }

        if (password.isEmpty()){
            Log.d("User", "Password = $password")
            tanggalLahir.error = "Tanggal Lahir Kosong!"
            return@setOnClickListener
        }

        login(username,password)
    }


}

你必须研究一下基本的android生命周期,在那里你第一次得到编辑文本值,并分配给全局变量用户名和密码,但当你输入一些并点击进入后,你必须在点击提交按钮时得到新添加的文本值,这就是为什么这些分配代码在点击按钮时出现。

© www.soinside.com 2019 - 2024. All rights reserved.