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

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

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

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Android

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Android Studio

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

Q&A

解決済

1回答

1230閲覧

DBに格納されたデータを全て表示したい

amabile046

総合スコア18

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Android

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Android Studio

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

0グッド

0クリップ

投稿2019/01/08 10:03

編集2019/01/08 10:07

こんばんは。度々お世話になっております。

私は英単語帳のようなアプリケーションを作成しております。英単語帳のデータとして、日本語、英語、正解か負債階下のフラグを格納するデータベースはSQLiteを使用したいと思っております。DBへの格納、全削除などを行うDB_manage.javaというプログラムについてご意見を頂きたいです。

package

1 2import android.content.ContentValues; 3import android.content.Context; 4import android.database.Cursor; 5import android.database.sqlite.SQLiteDatabase; 6import android.database.sqlite.SQLiteOpenHelper; 7 8public class DB_manage { 9 private final static String DB_NAME = "data.db"; // DB 名 10 private final static String DB_CONTENT_TABLE = "contentSheet"; // DB のテーブル名 11 private final static String DB_DATE_TABLE = "dateSheet"; // DB のテーブル名(date 用) 12 private final static int DB_VERSION = 1; // DB のバージョン 13 14 //DBのカラム名 15 public final static String COL_ID = "_id"; // id 16 public final static String COL_JAP = "japanese"; 17 public final static String COL_ENG = "english"; 18 public final static String COL_TOF = "t_or_f"; 19 private SQLiteDatabase db = null; // SQLiteDatabase 20 private DBHelper dbHelper = null; // DBHelper 21 protected Context context; // Context 22 23 // コンストラクタ 24 public DB_manage(Context context) { 25 this.context = context; 26 dbHelper = new DBHelper(this.context); 27 } 28 29 public DB_manage openDB() { 30 db = dbHelper.getWritableDatabase(); // DB の読み書き 31 return this; 32 } 33 34 public DB_manage readDB() { 35 db = dbHelper.getReadableDatabase(); // DB の読み込み 36 return this; 37 } 38 39 public void closeDB() { 40 db.close(); // DB を閉じる 41 db = null; 42 } 43 44 //DB のレコードへ登録 45 public void saveContentDB(String japanese, String english, int t_or_f) { 46 db.beginTransaction(); // トランザクション開始 47 try { 48 ContentValues values = new ContentValues(); // ContentValues でデータを設定していく 49 values.put(COL_JAP, japanese); 50 values.put(COL_ENG, english); 51 values.put(COL_TOF, t_or_f); 52// insert メソッド データ登録 53// 第 1 引数:DB のテーブル名 54// 第 2 引数:更新する条件式 55// 第 3 引数:ContentValues 56 db.insert(DB_CONTENT_TABLE, null, values); // レコードへ登録 57 db.setTransactionSuccessful(); // トランザクションへコミット 58 } catch (Exception e) { 59 e.printStackTrace(); 60 } finally { 61 db.endTransaction(); // トランザクションの終了 62 } 63 } 64 65 66 67 //!ここでDB のデータを全て取得したい! 68 69 70 71 //DB のレコードを全削除 72 public void allDelete() { 73 db.beginTransaction(); // トランザクション開始 74 try { 75// delete メソッド DB のレコードを削除 76// 第 1 引数:テーブル名 77// 第 2 引数:削除する条件式 null の場合は全レコードを削除 78// 第 3 引数:第 2 引数で?を使用した場合に使用 79 db.delete(DB_DATE_TABLE, null, null); //DB のレコードを全削除 80 db.delete(DB_CONTENT_TABLE, null, null); // DB のレコードを全削除 81 db.setTransactionSuccessful(); // トランザクションへコミット 82 } catch (Exception e) { 83 e.printStackTrace(); 84 } finally { 85 db.endTransaction(); // トランザクションの終了 86 } 87 } 88 /** 89 * DB のレコードの単一削除 90 * selectDelete() 91 * 92 * @param position String 93 */ 94 public void selectDelete(String position) { 95 db.beginTransaction(); // トランザクション開始 96 try { 97 db.delete(DB_DATE_TABLE, COL_ID + "=?", new String[]{position}); 98 db.delete(DB_CONTENT_TABLE, COL_ID + "=?", new String[]{position}); 99 db.setTransactionSuccessful(); // トランザクションへコミット 100 } catch (Exception e) { 101 e.printStackTrace(); 102 } finally { 103 db.endTransaction(); // トランザクションの終了 104 } 105 } 106 /** 107 * データベースの生成やアップグレードを管理する SQLiteOpenHelper を継承したクラス 108 * DBHelper 109 */ 110 private static class DBHelper extends SQLiteOpenHelper { 111 // コンストラクタ 112 public DBHelper(Context context) { 113//第 1 引数:コンテキスト 114//第 2 引数:DB 名 115//第 3 引数:factory null でよい 116//第 4 引数:DB のバージョン 117 super(context, DB_NAME, null, DB_VERSION); 118 } 119 /** 120 * DB 生成時に呼ばれる 121 * onCreate() 122 * 123 * @param db SQLiteDatabase 124 */ 125 @Override 126 public void onCreate(SQLiteDatabase db) { 127//テーブルを作成する SQL 文の定義 ※スペースに気を付ける 128 String createTbl_date = "CREATE TABLE " + DB_DATE_TABLE + " (" 129 + COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," 130 + COL_JAP + " INTEGER NOT NULL," 131 + COL_ENG + " INTEGER NOT NULL," 132 + COL_TOF + " INTEGER NOT NULL" 133 + ");"; 134 db.execSQL(createTbl_date); //SQL 実行 135 } 136 /** 137 * DB アップグレード(バージョンアップ)時に呼ばれる 138 * 139 * @param db SQLiteDatabase 140 * @param oldVersion int 古いバージョン 141 * @param newVersion int 新しいバージョン 142 */ 143 @Override 144 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 145// DB からテーブル削除 146 db.execSQL("DROP TABLE IF EXISTS '" + DB_CONTENT_TABLE + "'"); 147// テーブル生成 148 onCreate(db); 149 } 150 } 151} 152

現在のコードはこのようになっております(先人のものをいじったので修正を間違っている部分もあるかもしれません、、、)このコードの、//!ここで全取得したい! という部分で、英単語帳を表示する際に必要となるデータを全取得する関数を作りたいのですが、どのように書けばよいのかわからないので教えて頂きたいです。また、どこかほかの部分にもミスがありましたら教えて頂けると幸いです。
ちなみに、アプリとしては、1枚目がホーム画面、2枚目がDBに単語を格納する画面、3枚目がDBからすべての単語を表示する画面としています。
イメージ説明
1枚目のjavaファイルはWords.java、2枚目はactivity_sub.java、3枚目はactivity_sub2.javaというファイル名で、どれもまだボタンやテキストボックスの配置のみ記述しております。

3枚目では、英語の部分をリストのように表示し、それをタップするとトースト表示で日本語が表示されるようにするつもりです。正解と不正解のフラグについては、まだ手を付けていません。。。どなたかよろしければお願いします。

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

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

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

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

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

Orlofsky

2019/01/08 10:06

[SQLite]タグを追加されては?
amabile046

2019/01/08 10:08

タグを追加しました!ありがとうございます。
guest

回答1

0

自己解決

こちらは別のサンプルを用いて解決しましたので、これ以降の回答の募集は大丈夫です。

投稿2019/01/16 08:23

amabile046

総合スコア18

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問