質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Realm

RealmとはSQLiteやCore Dataに代わるモバイルデータベースです。iOSとAndroidの両方でサポートされています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

解決済

1回答

3349閲覧

アプリ終了:Logcat → FATAL EXCEPTION: main、java.lang.RuntimeException

akawo

総合スコア23

Realm

RealmとはSQLiteやCore Dataに代わるモバイルデータベースです。iOSとAndroidの両方でサポートされています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

0クリップ

投稿2018/06/26 12:52

androidstudio、kotlinでスケジュールアプリを作っているところです。
listviewの要素をタップするとアプリが終了してしまいます。その際のLogcatが下記のとおりです。

06-26 21:31:42.525 10969-10969/com.example.user1.myapplication5 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.user1.myapplication5, PID: 10969
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.user1.myapplication5/com.example.user1.myapplication5.EditActivity}: android.content.res.Resources$NotFoundException: String resource ID #0x3

EditActivity.kt

kotlin

1package com.example.user1.myapplication5 2 3import android.annotation.SuppressLint 4import android.support.v7.app.AppCompatActivity 5import android.os.Bundle 6import io.realm.Realm 7import io.realm.kotlin.createObject 8import io.realm.kotlin.where 9import kotlinx.android.synthetic.main.activity_edit.* 10import org.jetbrains.anko.alert 11import org.jetbrains.anko.startActivity 12import org.jetbrains.anko.yesButton 13import java.text.ParseException 14import java.text.SimpleDateFormat 15import java.util.* 16 17class EditActivity : AppCompatActivity() { 18 private lateinit var realm: Realm 19 20 override fun onCreate(savedInstanceState: Bundle?) { 21 super.onCreate(savedInstanceState) 22 setContentView(R.layout.activity_edit) 23 realm = Realm.getDefaultInstance() 24 25 RETURN.setOnClickListener { view -> 26 startActivity<MainActivity>() 27 } 28 29 val resultId = intent?.getLongExtra("result_id", -1L) 30 31 if (resultId != -1L){ 32 val result = realm.where<Result>().equalTo("id",resultId).findFirst() 33 DateEdit.setText(android.text.format.DateFormat.format("yyyy/MM/dd",result?.title)) 34 MyResultEdit.setText(result?.MyResult) 35 YourResultEdit.setText(result?.YourResult) 36 MyNameEdit.setText(result?.MyName) 37 YourNameEdit.setText(result?.YourName) 38 MySetEdit.setText(result?.MySet.toString().toInt()) 39 YourSetEdit.setText(result?.YourSet.toString().toInt()) 40 } 41 42 43 44 save.setOnClickListener { 45 when(resultId) { 46 -1L -> { 47 48 49 realm.executeTransaction { 50 val maxId = realm.where<Result>().max("id") 51 val nextId = (maxId?.toLong() ?: 0L) + 1 52 val result = realm.createObject<Result>(nextId) 53 DateEdit.text.toString().toDate("yyyy/MM/dd")?.let { 54 result.title = it 55 } 56 57 result.MyResult = MyResultEdit.text.toString() 58 result.YourResult = YourResultEdit.text.toString() 59 result.MyName = MyNameEdit.text.toString() 60 result.YourName = YourNameEdit.text.toString() 61 result.MySet = MySetEdit.text.toString().toInt() 62 result.YourSet = YourSetEdit.text.toString().toInt() 63 64 } 65 66 alert("追加しました") { 67 yesButton { finish() } 68 }.show() 69 70 } 71 72 else -> { 73 realm.executeTransaction{ 74 val result = realm.where<Result>().equalTo("id", resultId).findFirst() 75 DateEdit.text.toString().toDate("yyyy/MM/dd")?.let { 76 result?.title = it 77 } 78 result?.MyResult = MyResultEdit.text.toString() 79 result?.YourResult = YourResultEdit.text.toString() 80 result?.MyName = MyNameEdit.text.toString() 81 result?.YourName = YourNameEdit.text.toString() 82 result?.MySet = MySetEdit.text.toString().toInt() 83 result?.YourSet = YourSetEdit.text.toString().toInt() 84 85 86 } 87 alert ("追加しました"){ 88 yesButton { finish() } 89 }.show() 90 } 91 } 92 } 93 } 94 95 override fun onDestroy() { 96 super.onDestroy() 97 realm.close() 98 } 99 100 @SuppressLint("SimpleDateFormat") 101 private fun String.toDate(pattern: String = "yyyy/MM/dd HH:mm") : Date?{ 102 val rtFormat = try { 103 SimpleDateFormat(pattern) 104 } catch (e: IllegalArgumentException){ 105 null 106 } 107 108 val date = rtFormat?.let { 109 try { 110 it.parse(this) 111 112 } catch (e: ParseException){ 113 null 114 } 115 116 } 117 return date 118 119 } 120 121 122}

どうすればうまくいくでしょうか?
なにとぞ、なにとぞ、、、よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kakajika

2018/06/26 13:03

Resultというクラスのコードを貼っていただくことはできますか?
guest

回答1

0

自己解決

TextView.setText() にintの値を渡していたから問題発生していたことがわかりました!

MySetEdit.setText(result?.MySet.toString().toInt())

MySetEdit.setText(result?.MySet.toString())

int型、float型の値をstringにするには、3つ方法があるらしいです。
https://www.javadrive.jp/start/wrapper_class/index4.html

お騒がせいたしました!ありがとうございました!

投稿2018/06/26 13:19

akawo

総合スコア23

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問