前提・実現したいこと
初心者なので本で作りながら勉強しているのですが、以下のコードにある2つの
finish()
の上のfinishはエラーが出て、下のfinish()はエラーが出ません。
エラーが起こっている原因は何でしょうか?
ご回答お願いいたします。
発生している問題・エラーメッセージ
Type mismatch: inferred type is Unit but Boolean was expected
該当のソースコード
package com.example.bloodpressure
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Toast
import io.realm.Realm
import io.realm.kotlin.createObject
import io.realm.kotlin.where
import kotlinx.android.synthetic.main.activity_edit.*
import java.util.*
class EditActivity : AppCompatActivity() {
private val tag = "BloodPressure"
private lateinit var realm: Realm
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_edit) realm = Realm.getDefaultInstance() val bpId = intent.getLongExtra("id", 0L) if (bpId > 0L) { val bloodPress = realm.where<BloodPress>() .equalTo("id", bpId).findFirst() maxEdit.setText(bloodPress?.max.toString()) minEdit.setText(bloodPress?.min.toString()) pulseEdit.setText(bloodPress?.pulse.toString()) deleteBtn.visibility = View.VISIBLE } else { deleteBtn.visibility = View.INVISIBLE } saveBtn.setOnLongClickListener { var max: Long = 0 var min: Long = 0 var pulse: Long = 0 if (!maxEdit.text.isNullOrEmpty()) { max = maxEdit.text.toString().toLong() } if (!minEdit.text.isNullOrEmpty()) { min = minEdit.text.toString().toLong() } if (!pulseEdit.text.isNullOrEmpty()) { pulse = pulseEdit.text.toString().toLong() } when (bpId) { 0L -> { realm.executeTransaction { val maxId = realm.where<BloodPress>().max("id") val nextId = (maxId?.toLong() ?: 0L) + 1L val bloodPress = realm.createObject<BloodPress>(nextId) bloodPress.dateTime = Date() bloodPress.max = max bloodPress.min = min bloodPress.pulse = pulse } } else -> { realm.executeTransaction { val bloodPress = realm.where<BloodPress>() .equalTo("id", bpId).findFirst() bloodPress?.max = max bloodPress?.min = min bloodPress?.pulse = pulse } } } Toast.makeText(applicationContext, "保存しました", Toast.LENGTH_SHORT).show() **finish()** } deleteBtn.setOnClickListener { realm.executeTransaction { val bloodPress = realm.where<BloodPress>() .equalTo("id", bpId) ?.findFirst() ?.deleteFromRealm() } Toast.makeText(applicationContext, "削除しました", Toast.LENGTH_SHORT).show() ** finish()** } } override fun onDestroy() { super.onDestroy() realm.close() }
}
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/18 13:02