デバッグ実行した際にstartActivity(intent)まで処理が進んでいることを確認してみましたか?
また、MainActivity以外でfabというIDを割り当てている画面はありますか?
以下のようにコードを打ち、fabボタンを押しても画面遷移できません。
コードに何か間違いがあるのでしょう?
ご回答よろしくおい願いします。
kotlin
1**(AndroidManifests.xml)** 2 3<?xml version="1.0" encoding="utf-8"?> 4<manifest xmlns:android="http://schemas.android.com/apk/res/android" 5 package="com.example.bloodpressure"> 6 7 <application 8 android:name=".CustomApplication" 9 android:allowBackup="true" 10 android:icon="@mipmap/ic_launcher" 11 android:label="@string/app_name" 12 android:roundIcon="@mipmap/ic_launcher_round" 13 android:supportsRtl="true" 14 android:theme="@style/AppTheme"> 15 <activity android:name=".EditActivity" /> 16 <activity 17 android:name=".MainActivity" 18 android:label="@string/app_name" 19 android:theme="@style/AppTheme.NoActionBar"> 20 <intent-filter> 21 <action android:name="android.intent.action.MAIN" /> 22 23 <category android:name="android.intent.category.LAUNCHER" /> 24 </intent-filter> 25 </activity> 26 </application> 27 28</manifest>
kotlin
1 2**(MainActivity.kt)** 3 4 override fun onCreate(savedInstanceState: Bundle?) { 5 super.onCreate(savedInstanceState) 6 setContentView(R.layout.activity_main) 7 setSupportActionBar(toolbar) 8 realm = Realm.getDefaultInstance() 9 10 fab.setOnClickListener { view -> 11 val intent = Intent(this, EditActivity::class.java) 12 startActivity(intent) 13 } 14 }
kotlin
1**(EditActivity.kt)** 2 3 override fun onCreate(savedInstanceState: Bundle?) { 4 super.onCreate(savedInstanceState) 5 setContentView(R.layout.activity_edit) 6 realm = Realm.getDefaultInstance() 7 8 val bpId = intent.getLongExtra("id", 0L) 9 if (bpId > 0L) { 10 val bloodPress = realm.where<BloodPress>() 11 .equalTo("id", bpId).findFirst() 12 maxEdit.setText(bloodPress?.max.toString()) 13 minEdit.setText(bloodPress?.min.toString()) 14 pulseEdit.setText(bloodPress?.pulse.toString()) 15 deleteBtn.visibility = View.VISIBLE 16 } else { 17 deleteBtn.visibility = View.INVISIBLE 18 } 19 20 saveBtn.setOnClickListener { 21 22 var max: Long = 0 23 var min: Long = 0 24 var pulse: Long = 0 25 26 if (!maxEdit.text.isNullOrEmpty()) { 27 max = maxEdit.text.toString().toLong() 28 } 29 30 if (!minEdit.text.isNullOrEmpty()) { 31 min = minEdit.text.toString().toLong() 32 } 33 if (!pulseEdit.text.isNullOrEmpty()) { 34 pulse = pulseEdit.text.toString().toLong() 35 } 36 37 when (bpId) { 38 0L -> { 39 40 realm.executeTransaction { 41 val maxId = realm.where<BloodPress>().max("id") 42 val nextId = (maxId?.toLong() ?: 0L) + 1L 43 val bloodPress = realm.createObject<BloodPress>(nextId) 44 bloodPress.dateTime = Date() 45 bloodPress.max = max 46 bloodPress.min = min 47 bloodPress.pulse = pulse 48 } 49 } 50 51 else -> { 52 53 realm.executeTransaction { 54 val bloodPress = realm.where<BloodPress>() 55 .equalTo("id", bpId).findFirst() 56 bloodPress?.max = max 57 bloodPress?.min = min 58 bloodPress?.pulse = pulse 59 60 } 61 62 63 } 64 } 65 66 Toast.makeText(applicationContext, "保存しました", Toast.LENGTH_SHORT).show() 67 finish() 68 } 69 70 deleteBtn.setOnClickListener { 71 72 realm.executeTransaction { 73 val bloodPress = realm.where<BloodPress>() 74 .equalTo("id", bpId) 75 ?.findFirst() 76 ?.deleteFromRealm() 77 } 78 Toast.makeText(applicationContext, "削除しました", Toast.LENGTH_SHORT).show() 79 finish() 80 81 } 82 } 83
あなたの回答
tips
プレビュー