使用Kotlin在Android中需要帮助

时间:2018-11-05 16:07:37

标签: android kotlin kotlin-android-extensions

SignupActivity.kt

import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.widget.EditText
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_signup.*

class SignupActivity:AppCompatActivity(){

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_signup)


    val signname =findViewById<EditText>(R.id.signNameTxt)
    val s=signname!!.text.toString()

    fun validate(){
        if(s.isNotEmpty()){
            Toast.makeText(this,"Working :)",Toast.LENGTH_SHORT).show()
        }
        else{
            Toast.makeText(this,"Not Working :(",Toast.LENGTH_SHORT).show()
        }
    }
    signNxtBtn.setOnClickListener{
       validate()
    }
}
public override fun onDestroy() {
    super.onDestroy()
}
}

这是用于注册活动的简单代码,用于验证该字段是否为空以供进一步处理

if(s.isNotEmpty()){
            Toast.makeText(this,"Working :)",Toast.LENGTH_SHORT).show()
        }

        else{
            Toast.makeText(this,"Not Working :(",Toast.LENGTH_SHORT).show()
        }

在代码的这一部分中,无论我是否在文本字段内输入任何值,应用程序都将返回else部分。

2 个答案:

答案 0 :(得分:3)

您太早阅读了edittext值。移动

val s=signname!!.text.toString()

在您的validate()函数内部。

答案 1 :(得分:0)

**

  

像这样使用您的代码。

**

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val s = tvDisplay.text.toString()

        btnOk.setOnClickListener {
            validate(s)
        }
    }

    private fun validate(s:String) {

        if(s.isNotEmpty()){
            Toast.makeText(this,"Working :)",Toast.LENGTH_SHORT).show()
        }
        else{
            Toast.makeText(this,"Not Working :(",Toast.LENGTH_SHORT).show()
        }
    } }