【问题标题】:can't get data from edit text, Android Kotlin无法从编辑文本中获取数据,Android Kotlin
【发布时间】:2020-09-29 17:49:42
【问题描述】:

尝试从edittext获取数据时得到空数据 有我的代码

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)
    }


}

当我签入日志时 image check log

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

【问题讨论】:

    标签: android kotlin android-edittext android-textinputedittext


    【解决方案1】:
    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)
        }
    
    
    }
    

    【讨论】:

      【解决方案2】:
      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 生命周期。在那里你第一次得到编辑文本值并分配给全局变量用户名和密码。但是在您输入一些并单击输入后,您必须在单击提交按钮时获取新添加的文本值。这就是为什么那些分配代码进入按钮点击的原因。

      【讨论】:

        猜你喜欢
        • 2020-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多