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

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

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

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

Android

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

Android Studio

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

Q&A

解決済

2回答

4277閲覧

【SQLite】editTextに入力した内容を、Listviewに表示させたい

k.marumaru

総合スコア19

Java

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

Android

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

Android Studio

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

0グッド

0クリップ

投稿2016/03/08 08:32

SQLiteを利用し、editTextに入力した内容をListviewに表示させたいです。
ですがエラーコードが下記の通り出てしまい、上手くいきません。
エラー内容を調べてみたのですがよく理解できなかったので、
ご教授頂けないでしょうか?

■エラーコード
Error:(42, 17) エラー: クラス MainActivityのメソッド saveDataは指定された型に適用できません。
期待値: String,String
検出値: ListView
理由: 実引数リストと仮引数リストの長さが異なります

Error:(55, 49) エラー: シンボルを見つけられません
シンボル: 変数 txtStr
場所: クラス MainActivity

Error:(57, 31) エラー: シンボルを見つけられません
シンボル: 変数 txtStr
場所: クラス MainActivity

Error:(63, 22) エラー: シンボルを見つけられません
シンボル: メソッド setText(String)
場所: タイプListViewの変数 listview_txt1

以下ソースです。
MainActiviy,MainActiviy,content_main.xmlの3ファイルを記載しました。
よろしくお願いします。

■MainActiviy

java

1package jp.androidbook.myapp_dbpractice2; 2 3import android.database.sqlite.SQLiteDatabase; 4import android.os.Bundle; 5import android.support.design.widget.FloatingActionButton; 6import android.support.design.widget.Snackbar; 7import android.support.v7.app.AppCompatActivity; 8import android.support.v7.widget.Toolbar; 9import android.view.View; 10import android.view.Menu; 11import android.view.MenuItem; 12import android.widget.Button; 13import android.widget.EditText; 14import android.widget.ListView; 15import android.widget.TextView; 16import android.widget.Toast; 17 18public class MainActivity extends AppCompatActivity { 19 20 EditText edit_text1; 21 Button button1; 22 ListView listview_txt1; 23 24 MyDbHelper myDbHelper; 25 SQLiteDatabase myDB; 26 27 @Override 28 protected void onCreate(Bundle savedInstanceState) { 29 super.onCreate(savedInstanceState); 30 setContentView(R.layout.activity_main); 31 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 32 setSupportActionBar(toolbar); 33 34 edit_text1 = (EditText) findViewById(R.id.edit_text1); 35 button1 = (Button) findViewById(R.id.button1); 36 listview_txt1 = (ListView) findViewById(R.id.listview_txt1); 37 38 button1.setOnClickListener(new View.OnClickListener() { 39 @Override 40 public void onClick(View v) { 41 String txtStr = edit_text1.getText().toString(); 42 saveData(listview_txt1); 43 } 44 }); 45 46 // ヘルパーのインスタンス作成。 47 myDbHelper = new MyDbHelper(getApplicationContext()); 48 // getWritableDatabase()を使用してデータベースを開き、SQLiteDatabaseのインスタンス取得 49 myDB = myDbHelper.getWritableDatabase(); 50 51 setData(); 52 } 53 54 private void saveData(String titleStr, String detailStr) { 55 Toast.makeText(getApplicationContext(), txtStr + "を保存します", Toast.LENGTH_SHORT).show(); 56 // DB処理を行う 57 myDbHelper.insertData(txtStr, myDB); 58 setData(); 59 } 60 61 private void setData(){ 62 String result = myDbHelper.showData(myDB); 63 listview_txt1.setText(result); 64 } 65 66 67 @Override 68 public boolean onCreateOptionsMenu(Menu menu) { 69 getMenuInflater().inflate(R.menu.menu_main, menu); 70 return true; 71 } 72 73 @Override 74 public boolean onOptionsItemSelected(MenuItem item) { 75 int id = item.getItemId(); 76 77 if (id == R.id.action_settings) { 78 return true; 79 } 80 81 return super.onOptionsItemSelected(item); 82 } 83} 84 85

■MyDbHelper

java

1package jp.androidbook.myapp_dbpractice2; 2 3import android.content.ContentValues; 4import android.content.Context; 5import android.database.Cursor; 6import android.database.sqlite.SQLiteDatabase; 7import android.database.sqlite.SQLiteOpenHelper; 8 9 10public class MyDbHelper extends SQLiteOpenHelper { 11 12 //フィールドの宣言 13 static final String DB = "mydatabase.db"; 14 static final int DB_VERSION = 1; 15 static final String DB_TABLE = "mytable"; 16 static final String CREATE_TABLE = "create table " + DB_TABLE + " ( _id integer primary key autoincrement, edit_text1 );"; 17 static final String DROP_TABLE = "drop table mytable;"; 18 19 20 //コンストラクタ 21 public MyDbHelper(Context context) { 22 super(context, DB, null, DB_VERSION); 23 } 24 25 public void insertData(String txtStr, SQLiteDatabase myDB) { 26 //コンテントバリュー(データベースに保管するデータをまとめる)インスタンスの作成 27 ContentValues values = new ContentValues(); 28 29 //コンテントバリューへの値の設定 30 values.put("txt", txtStr); 31 32 //insertによるレコードの追加 第1引数…テーブル名、第2引数…nullコラムハック、第3引数…コンテントバリュー 33 myDB.insert(DB_TABLE, null, values); 34 } 35 36 37 public String showData(SQLiteDatabase myDB) { 38 String result = ""; 39 40 // レコードを検索してカーソルを作成 41 Cursor cursor = myDB.query(DB_TABLE, new String[] { "_id","txt" },null, null, null, null, null, null); 42 43 // カーソルから値を取り出す 44 while (cursor.moveToNext()) { 45 String str = cursor.getString(cursor.getColumnIndex("_id")) + "," 46 + cursor.getString(cursor.getColumnIndex("txt")) + "\n"; 47 result = result + str; 48 } 49 cursor.close(); 50 return result; 51 } 52 53 54 //データベース作成処理 55 public void onCreate(SQLiteDatabase db) { 56 db.execSQL(CREATE_TABLE); 57 } 58 59 //データベース更新処理 60 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 61 db.execSQL(DROP_TABLE); 62 onCreate(db); 63 } 64} 65

■content_main.xml

xml

1 2<?xml version="1.0" encoding="utf-8"?> 3<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 4 xmlns:app="http://schemas.android.com/apk/res-auto" 5 xmlns:tools="http://schemas.android.com/tools" 6 android:layout_width="match_parent" 7 android:layout_height="match_parent" 8 android:paddingBottom="@dimen/activity_vertical_margin" 9 android:paddingLeft="@dimen/activity_horizontal_margin" 10 android:paddingRight="@dimen/activity_horizontal_margin" 11 android:paddingTop="@dimen/activity_vertical_margin" 12 app:layout_behavior="@string/appbar_scrolling_view_behavior" 13 tools:context="jp.androidbook.myapp_dbpractice2.MainActivity" 14 android:orientation="vertical" 15 tools:showIn="@layout/activity_main"> 16 17 <EditText 18 android:id="@+id/edit_text1" 19 android:layout_width="match_parent" 20 android:layout_height="wrap_content" 21 android:hint="テキスト入力"/> 22 <Button 23 android:id="@+id/button1" 24 android:layout_width="match_parent" 25 android:layout_height="wrap_content" 26 android:text="保存"/> 27 <ListView 28 android:id="@+id/listview_txt1" 29 android:layout_width="wrap_content" 30 android:layout_height="wrap_content" 31 android:layout_marginTop="10dp" 32 android:text="ここにDBのデータが表示されます。" /> 33 34</LinearLayout> 35

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

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

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

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

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

guest

回答2

0

頂いたご指摘を基に、表示されたエラーの解消を行いました。

■変更内容

▼MainActiviy
・list viewではなくtextviewを使用(result_textとして初期化)
・saveDataメソッドの引数をlistview_txt1からtxtStrに変更
・setDataメソッドのlistview_txt1をresult_textに変更
・ローカル変数だったtxtStrを他の変数に変更

▼MyDbHelper
・DB_VERSIONを1から2に変更(新しいDBを作成)
・フィールドの宣言に記載した、CREATE_TABLE内部の型を変更(edit_text1⇒txt text)

以下ソースです。

■MainActiviy

java

1package jp.androidbook.myapp_dbpractice2; 2 3import android.database.sqlite.SQLiteDatabase; 4import android.os.Bundle; 5import android.support.design.widget.FloatingActionButton; 6import android.support.design.widget.Snackbar; 7import android.support.v7.app.AppCompatActivity; 8import android.support.v7.widget.Toolbar; 9import android.view.View; 10import android.view.Menu; 11import android.view.MenuItem; 12import android.widget.Button; 13import android.widget.EditText; 14import android.widget.ListView; 15import android.widget.TextView; 16import android.widget.Toast; 17 18public class MainActivity extends AppCompatActivity { 19 20 EditText edit_text1; 21 Button button1; 22 TextView result_text; 23 24 MyDbHelper myDbHelper; 25 SQLiteDatabase myDB; 26 27 @Override 28 protected void onCreate(Bundle savedInstanceState) { 29 super.onCreate(savedInstanceState); 30 setContentView(R.layout.activity_main); 31 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 32 setSupportActionBar(toolbar); 33 34 edit_text1 = (EditText) findViewById(R.id.edit_text1); 35 button1 = (Button) findViewById(R.id.button1); 36 result_text = (TextView) findViewById(R.id.result_text); 37 38 button1.setOnClickListener(new View.OnClickListener() { 39 @Override 40 public void onClick(View v) { 41 String txtStr = edit_text1.getText().toString(); 42 saveData(txtStr); 43 } 44 }); 45 46 // ヘルパーのインスタンス作成。 47 myDbHelper = new MyDbHelper(getApplicationContext()); 48 // getWritableDatabase()を使用してデータベースを開き、SQLiteDatabaseのインスタンス取得 49 myDB = myDbHelper.getWritableDatabase(); 50 51 setData(); 52 } 53 54 private void saveData(String txtStr) { 55 Toast.makeText(getApplicationContext(),edit_text1 + "を保存します", Toast.LENGTH_SHORT).show(); 56 // DB処理を行う 57 myDbHelper.insertData(txtStr, myDB); 58 setData(); 59 } 60 61 private void setData(){ 62 String result = myDbHelper.showData(myDB); 63 result_text.setText(result); 64 } 65 66 67 @Override 68 public boolean onCreateOptionsMenu(Menu menu) { 69 getMenuInflater().inflate(R.menu.menu_main, menu); 70 return true; 71 } 72 73 @Override 74 public boolean onOptionsItemSelected(MenuItem item) { 75 int id = item.getItemId(); 76 77 if (id == R.id.action_settings) { 78 return true; 79 } 80 81 return super.onOptionsItemSelected(item); 82 } 83} 84 85

■MyDbHelper

java

1package jp.androidbook.myapp_dbpractice2; 2 3import android.content.ContentValues; 4import android.content.Context; 5import android.database.Cursor; 6import android.database.sqlite.SQLiteDatabase; 7import android.database.sqlite.SQLiteOpenHelper; 8 9 10public class MyDbHelper extends SQLiteOpenHelper { 11 12 //フィールドの宣言 13 static final String DB = "mydatabase.db"; 14 static final int DB_VERSION = 1; 15 static final String DB_TABLE = "mytable"; 16 static final String CREATE_TABLE = "create table " + DB_TABLE + " ( _id integer primary key autoincrement, edit_text1 );"; 17 static final String DROP_TABLE = "drop table mytable;"; 18 19 20 //コンストラクタ 21 public MyDbHelper(Context context) { 22 super(context, DB, null, DB_VERSION); 23 } 24 25 public void insertData(String txtStr, SQLiteDatabase myDB) { 26 //コンテントバリュー(データベースに保管するデータをまとめる)インスタンスの作成 27 ContentValues values = new ContentValues(); 28 29 //コンテントバリューへの値の設定 30 values.put("txt", txtStr); 31 32 //insertによるレコードの追加 第1引数…テーブル名、第2引数…nullコラムハック、第3引数…コンテントバリュー 33 myDB.insert(DB_TABLE, null, values); 34 } 35 36 37 public String showData(SQLiteDatabase myDB) { 38 String result = ""; 39 40 // レコードを検索してカーソルを作成 41 Cursor cursor = myDB.query(DB_TABLE, new String[] { "_id","txt" },null, null, null, null, null, null); 42 43 // カーソルから値を取り出す 44 while (cursor.moveToNext()) { 45 String str = cursor.getString(cursor.getColumnIndex("_id")) + "," 46 + cursor.getString(cursor.getColumnIndex("txt")) + "\n"; 47 result = result + str; 48 } 49 cursor.close(); 50 return result; 51 } 52 53 54 //データベース作成処理 55 public void onCreate(SQLiteDatabase db) { 56 db.execSQL(CREATE_TABLE); 57 } 58 59 //データベース更新処理 60 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 61 db.execSQL(DROP_TABLE); 62 onCreate(db); 63 } 64} 65

■content_main.xml

xml

1<?xml version="1.0" encoding="utf-8"?> 2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 xmlns:tools="http://schemas.android.com/tools" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 android:paddingBottom="@dimen/activity_vertical_margin" 8 android:paddingLeft="@dimen/activity_horizontal_margin" 9 android:paddingRight="@dimen/activity_horizontal_margin" 10 android:paddingTop="@dimen/activity_vertical_margin" 11 app:layout_behavior="@string/appbar_scrolling_view_behavior" 12 tools:context="jp.androidbook.myapp_dbpractice2.MainActivity" 13 android:orientation="vertical" 14 tools:showIn="@layout/activity_main"> 15 16 <EditText 17 android:id="@+id/edit_text1" 18 android:layout_width="match_parent" 19 android:layout_height="wrap_content" 20 android:hint="テキスト入力"/> 21 <Button 22 android:id="@+id/button1" 23 android:layout_width="match_parent" 24 android:layout_height="wrap_content" 25 android:text="保存"/> 26 <TextView 27 android:id="@+id/result_text" 28 android:layout_width="match_parent" 29 android:layout_height="wrap_content" 30 android:layout_marginTop="10dp" 31 android:text="保存されたデータが表示されます。" /> 32 33</LinearLayout> 34

投稿2016/03/09 03:23

k.marumaru

総合スコア19

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

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

0

ベストアンサー

・saveDataは指定された型に適用できません
→メソッドsaveDataの引数はString型を2つです。ListView型の引数は渡すことはできません。Javaの基本ですね。

・エラー: シンボルを見つけられません
シンボル: 変数 txtStr
→txtStrはbutton1に追加したリスナーのメソッドの中でローカル変数として宣言されているため、他のメソッドからは操作することはできません。Javaの基本ですね。

・エラー: シンボルを見つけられません
シンボル: メソッド setText(String)
→ListViewはリスト形式でViewを表示するために存在しています。そのため文字を表示するsetTextは存在しません。

全体的に何をしたいのかが汲み取れないため、一度やりたいことを簡潔に順番に箇条書きし、整理することをお勧めします。

投稿2016/03/08 09:09

yona

総合スコア18155

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

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

k.marumaru

2016/03/08 09:32

ご回答頂きありがとうございます! また情報が整理されておらず失礼しました。 実装したい処理は以下の通りです。 ■処理 ①テキストをEditTextに入力 ②ボタンを押し、EditTextの内容をSQLiteに保存 ③SQLiteに保存されたものを、ListViewで表示させる 一旦ご指摘頂いた変数や引数に注目しながら再度チャレンジしてみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問