Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin(Android Studio)-如果文本字段为空,我不想参加新活动_Android_Kotlin_Android Recyclerview_Android Room - Fatal编程技术网

Kotlin(Android Studio)-如果文本字段为空,我不想参加新活动

Kotlin(Android Studio)-如果文本字段为空,我不想参加新活动,android,kotlin,android-recyclerview,android-room,Android,Kotlin,Android Recyclerview,Android Room,我正在练习“kotlin room persistence”库保存数据,并通过按“保存用户”按钮向另一个活动显示数据,但如果字段为空,我不想转到新活动 我尝试过简单的if语句 if (user.toString().trim().isNotEmpty()) { Toast.makeText(this, "Fields are empty", Toast.LENGTH_SHORT).show() } 这个。。但它也不起作用 这是我的密码: package com.example.app

我正在练习“kotlin room persistence”库保存数据,并通过按“保存用户”按钮向另一个活动显示数据,但如果字段为空,我不想转到新活动

我尝试过简单的if语句

if (user.toString().trim().isNotEmpty()) {
   Toast.makeText(this, "Fields are empty", Toast.LENGTH_SHORT).show() 
}
这个。。但它也不起作用

这是我的密码:

package com.example.app

import android.arch.persistence.room.Room
import android.content.Intent
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.widget.Toast
import com.example.app.roomDataBase.AppDb
import com.example.app.roomDataBase.UserDataClassRoom
import kotlinx.android.synthetic.main.create_user.*

class CreateUser : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.create_user)

        val db = Room.databaseBuilder(
            applicationContext
            , AppDb::class.java, "database-name"
        ).allowMainThreadQueries()
            .build()

        btnSaveUser.setOnClickListener {

            val user = UserDataClassRoom(
                first_Name.text.toString().trim(),
                Last_Name.text.toString(),
                email.text.toString()
            )

            /* if (user.toString().trim().isNotEmpty()) {
                Toast.makeText(this, "Fields are empty", Toast.LENGTH_SHORT).show()
                } */
            db.userDao().insertAll(user)


            val intent = Intent(this, MainActivity::class.java)
            startActivity(intent)
        }
    }
}

if语句错误,它检查值是否不是空的而不是空的,您需要将isNotEmpty()更改为isEmpty(),如下所示:

    if (user.toString().trim().isEmpty()) {
        Toast.makeText(this, "Fields are empty", Toast.LENGTH_SHORT).show()
        // return No need if you specify else
    }
   else{
       db.userDao().insertAll(user)
       val intent = Intent(this, MainActivity::class.java)
       startActivity(intent)
   }

将return语句放在Toast之后。但是我仍然很好奇为什么要使用
if(user.toString().trim().isNotEmpty())
而不是
trim()。isEmpty
您没有添加else语句。您可以添加else语句并指定要执行的操作,或者放置return语句。当我在textfields中输入一些数据时,它仍然表示字段为空,我也尝试使用else语句发布更新的代码。它不起作用,它仍然使用空字段创建TextView,现在我的代码是:
if(user.toString().trim()).isEmpty(){Toast.makeText(此“字段为空”,Toast.LENGTH_SHORT)。show()//return@setOnClickListener}else{db.userDao().insertAll(user)val intent=intent(this,MainActivity::class.java)startActivity(intent)}
这意味着user.toString()是一个需要检查的错误值,并且它总是不为空,我不知道您是否在user.java中重写了toString()。如果您没有覆盖它,那么是时候这样做了,或者您可以单独检查每个值,如:if(firstName.isEmpty()| | | | lastName.isEmpty()| |·){toast…}else{..code here}