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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

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

Android Emulator

Android EmulatorはアンドロイドのOSで起動しているアンドロイドのデバイスの機能をシミュレートするソフトウェアです。Emulatorは開発者に複数の違う設定を持ったデバイスを必要とすることなくアプリケーションを開発しテストすることが可能になります。

Q&A

0回答

869閲覧

Android Studio ボタンについて

ruka--

総合スコア13

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

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

Android Emulator

Android EmulatorはアンドロイドのOSで起動しているアンドロイドのデバイスの機能をシミュレートするソフトウェアです。Emulatorは開発者に複数の違う設定を持ったデバイスを必要とすることなくアプリケーションを開発しテストすることが可能になります。

0グッド

0クリップ

投稿2020/12/15 02:59

編集2020/12/15 05:19

前提・実現したいこと

ボタンを押すと入力したテキストをデータベースに保存するアプリを作成したいです。参考書に記載されているプログラムをそのまま実行しましたが、エラーが出てしまいます。

発生している問題・エラーメッセージ

E/SQLiteLog: (1) table cocktailmemos has no column named note E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.myapplication, PID: 17187 java.lang.IllegalStateException: Could not execute method for android:onClick at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:414) at android.view.View.performClick(View.java:6597) at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:992) at android.view.View.performClickInternal(View.java:6574) at android.view.View.access$3100(View.java:778) at android.view.View$PerformClick.run(View.java:25885) at android.os.Handler.handleCallback(Handler.java:873) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6669) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:409) at android.view.View.performClick(View.java:6597)  at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:992)  at android.view.View.performClickInternal(View.java:6574)  at android.view.View.access$3100(View.java:778)  at android.view.View$PerformClick.run(View.java:25885)  at android.os.Handler.handleCallback(Handler.java:873)  at android.os.Handler.dispatchMessage(Handler.java:99)  at android.os.Looper.loop(Looper.java:193)  at android.app.ActivityThread.main(ActivityThread.java:6669)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)  Caused by: android.database.sqlite.SQLiteException: table cocktailmemos has no column named note (code 1 SQLITE_ERROR): , while compiling: INSERT INTO cocktailmemos (_id,name,note) VALUES (?,?,?) at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:903) at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:514) at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58) at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31) at android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1086) at com.example.myapplication.MainActivity3.onSaveButtonClick(MainActivity3.kt:44) at java.lang.reflect.Method.invoke(Native Method)  at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:409)  at android.view.View.performClick(View.java:6597)  at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:992)  at android.view.View.performClickInternal(View.java:6574)  at android.view.View.access$3100(View.java:778)  at android.view.View$PerformClick.run(View.java:25885)  at android.os.Handler.handleCallback(Handler.java:873)  at android.os.Handler.dispatchMessage(Handler.java:99)  at android.os.Looper.loop(Looper.java:193)  at android.app.ActivityThread.main(ActivityThread.java:6669)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 

該当のソースコード

MainActivity3.kt

1package com.example.myapplication 2 3import androidx.appcompat.app.AppCompatActivity 4import android.os.Bundle 5import android.view.View 6import android.widget.* 7 8class MainActivity3 : AppCompatActivity() { 9 private var _cocktailId = -1 10 11 private var _cocktailName = "" 12 13 private val _helper = DatabaseHelper(this@MainActivity3) 14 15 override fun onCreate(savedInstanceState: Bundle?) { 16 super.onCreate(savedInstanceState) 17 setContentView(R.layout.activity_main3) 18 19 val lvCocktail = findViewById<ListView>(R.id.lvCoctail) 20 lvCocktail.onItemClickListener = ListItemClickListener() 21 } 22 23 override fun onDestroy() { 24 _helper.close() 25 super.onDestroy() 26 } 27 fun onSaveButtonClick(view: View){ 28 val etNote = findViewById<EditText>(R.id.etNote) 29 30 val note = etNote.text.toString() 31 32 val db = _helper.writableDatabase 33 34 val sqlDelete = "DELETE FROM cocktailmemos WHERE _id = ?" 35 36 var stmt = db.compileStatement(sqlDelete) 37 38 stmt.bindLong(1,_cocktailId.toLong()) 39 40 stmt.executeUpdateDelete() 41 42 val sqlInsert = "INSERT INTO cocktailmemos (_id,name,note) VALUES (?,?,?)" 43 44 stmt = db.compileStatement(sqlInsert) 45 46 stmt.bindLong(1,_cocktailId.toLong()) 47 stmt.bindString(2,_cocktailName) 48 stmt.bindString(3,note) 49 50 stmt.executeInsert() 51 52 etNote.setText("") 53 54 val tvCocktailName = findViewById<TextView>(R.id.tvCocktailName) 55 56 tvCocktailName.text = getString(R.string.tv_name) 57 58 val btnSave = findViewById<Button>(R.id.btnSave) 59 60 btnSave.isEnabled = false 61 62 } 63 private inner class ListItemClickListener : AdapterView.OnItemClickListener{ 64 override fun onItemClick(parent: AdapterView<*>?, view: View?, position: Int, id: Long) { 65 _cocktailId = position 66 67 if (parent != null) { 68 _cocktailName = parent.getItemAtPosition(position) as String 69 } 70 71 72 val tvCocktailName = findViewById<TextView>(R.id.tvCocktailName) 73 74 tvCocktailName.text = _cocktailName 75 76 val btnSave = findViewById<Button>(R.id.btnSave) 77 78 btnSave.isEnabled = true 79 80 val db = _helper.writableDatabase 81 82 val sql = "SELECT * FROM cocktailmemos WHERE _id = ${_cocktailId}" 83 84 val cursor = db.rawQuery(sql,null) 85 86 var note = "" 87 88 while(cursor.moveToNext()){ 89 val idxNote = cursor.getColumnIndex("note") 90 91 note = cursor.getString(idxNote) 92 } 93 val etNote = findViewById<EditText>(R.id.etNote) 94 etNote.setText(note) 95 96 } 97 98 99 } 100}

補足情報(FW/ツールのバージョンなど)

恐らくonSaveButtonClickの部分でエラーが出ているのではないかと考えていました。
宜しくお願い致します。

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

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

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

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

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

senior_golfer

2020/12/15 05:56

タイトルと質問の内容が一致していないかな。 あと、DatabaseHelperの内容は記述しないの。
hoshi-takanori

2020/12/23 07:03

table cocktailmemos has no column named note なので、テーブル定義に問題がありそうですね。 CREATE TABLE はどこでどうやってますか? あと、id が position なのは問題がありそう…。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問