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

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

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

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

Java

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

Android Studio

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

Q&A

解決済

2回答

870閲覧

android studioでのSQLiteからの出力

taku_

総合スコア13

SQLite

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

Java

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

Android Studio

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

0グッド

0クリップ

投稿2018/10/17 13:54

編集2018/10/17 15:19

android studioでアプリ開発を行っている者です。
SubActivityで検索ボタンを押すとSQLiteに保存してあるデータを取得して出力したいのですがどこが間違っているのかわからないのでどこがどのように間違っているのか教えてほしいです。
以下にソースコードを示します。

SubActivity.java

java

1import android.database.Cursor; 2import android.database.sqlite.SQLiteDatabase; 3import android.support.v7.app.AppCompatActivity; 4import android.os.Bundle; 5import android.view.View; 6import android.widget.Button; 7import android.widget.TextView; 8 9import com.example.manga.R; 10import com.example.manga.TestOpenHelper; 11 12public class SubActivity extends AppCompatActivity { 13 14 private TextView textView; 15 private TestOpenHelper helper; 16 17 @Override 18 protected void onCreate(Bundle savedInstanceState) { 19 super.onCreate(savedInstanceState); 20 setContentView(R.layout.activity_sub); 21 22 // DB作成 23 helper = new TestOpenHelper(getApplicationContext()); 24 25 Button readButton = findViewById(R.id.button); 26 readButton.setOnClickListener(new View.OnClickListener() { 27 @Override 28 public void onClick(View v) { 29 readData(); 30 } 31 }); 32 33 textView = findViewById(R.id.text_view); 34 35 } 36 37 private void readData(){ 38 SQLiteDatabase db = helper.getReadableDatabase(); 39 Cursor cursor = db.query( 40 "testdb", 41 new String[] { "haika", "subname","name","title","subtitle","sum","sort","jene","tana" }, 42 null, 43 null, 44 null, 45 null, 46 null 47 ); 48 49 cursor.moveToFirst(); 50 51 StringBuilder sbuilder = new StringBuilder(); 52 53 for (int i = 0; i < cursor.getCount(); i++) { 54 sbuilder.append(cursor.getString(0)); 55 sbuilder.append("配架:"); 56 sbuilder.append(cursor.getInt(1)); 57 sbuilder.append("かな作者名:"); 58 sbuilder.append(cursor.getInt(2)); 59 sbuilder.append("作者名:"); 60 sbuilder.append(cursor.getInt(3)); 61 sbuilder.append("タイトル:"); 62 sbuilder.append(cursor.getInt(4)); 63 sbuilder.append("かなタイトル:"); 64 sbuilder.append(cursor.getInt(5)); 65 sbuilder.append("巻数:"); 66 sbuilder.append(cursor.getInt(6)); 67 sbuilder.append("巻ソート:"); 68 sbuilder.append(cursor.getInt(7)); 69 sbuilder.append("年代:"); 70 sbuilder.append(cursor.getInt(1)); 71 sbuilder.append("棚:"); 72 cursor.moveToNext(); 73 } 74 75 textView.setText(sbuilder.toString()); 76 cursor.close(); 77 } 78} 79

TestOpenHelper.java

java

1package com.example.manga; 2 3import android.content.ContentValues; 4import android.content.Context; 5import android.database.sqlite.SQLiteDatabase; 6import android.database.sqlite.SQLiteOpenHelper; 7 8public class TestOpenHelper extends SQLiteOpenHelper { 9 10 // データーベースのバージョン 11 private static final int DATABASE_VERSION = 1; 12 13 // データーベース名 14 private static final String DATABASE_NAME = "TestDB.db"; 15 private static final String TABLE_NAME = "testdb"; 16 private static final String _ID = "_id"; 17 private static final String COLUMN_NAME_TITLE = "title"; 18 private static final String COLUMN_NAME_SUBTITLE = "subtitle"; 19 private static final String COLUMN_NAME_NAME = "name"; 20 private static final String COLUMN_NAME_SUBNAME = "subname"; 21 private static final String COLUMN_NAME_NUM = "num"; 22 private static final String COLUMN_NAME_HAIKA = "haika"; 23 private static final String COLUMN_NAME_SORT = "sort"; 24 private static final String COLUMN_NAME_JANE = "jene"; 25 private static final String COLUMN_NAME_TANA = "tana"; 26 27 private static final String SQL_CREATE_ENTRIES = 28 "CREATE TABLE " + TABLE_NAME + " (" + 29 _ID + " INTEGER PRIMARY KEY," + 30 COLUMN_NAME_HAIKA+"INTEGER" + 31 COLUMN_NAME_SUBNAME+"TEXT" + 32 COLUMN_NAME_NAME+"TEXT" + 33 COLUMN_NAME_TITLE + " TEXT," + 34 COLUMN_NAME_SUBTITLE+"TEXT" + 35 COLUMN_NAME_NUM+"INTEGER" + 36 COLUMN_NAME_SORT+"INTEGER" + 37 COLUMN_NAME_JANE+"INTEGER" + 38 COLUMN_NAME_TANA + " TEXT)"; 39 40 private static final String SQL_DELETE_ENTRIES = 41 "DROP TABLE IF EXISTS " + TABLE_NAME; 42 43 44 TestOpenHelper(Context context) { 45 super(context, DATABASE_NAME, null, DATABASE_VERSION); 46 47 } 48 49 @Override 50 public void onCreate(SQLiteDatabase db) { 51 // テーブル作成 52 db.execSQL( 53 SQL_CREATE_ENTRIES 54 ); 55 56 saveData(db, 1, "ヤママツユウキチ","山松ゆうきち","ああ!あとがない","アアアトガナイ",1,1,2000,"2000"); 57 58 } 59 60 @Override 61 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 62 // アップデートの判別 63 db.execSQL( 64 SQL_DELETE_ENTRIES 65 ); 66 onCreate(db); 67 } 68 69 // public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) { 70 // onUpgrade(db, oldVersion, newVersion); 71 // } 72 73 void saveData(SQLiteDatabase db, int haika, String subname,String name,String title,String subtitle,int num,int sort,int jene,String tana ){ 74 ContentValues values = new ContentValues(); 75 values.put("haika", haika); 76 values.put("subname", subname); 77 values.put("name", name); 78 values.put("title", title); 79 values.put("subtitle", subtitle); 80 values.put("num", num); 81 values.put("sort", sort); 82 values.put("jene", jene); 83 values.put("tana", tana); 84 85 db.insert("testdb", null, values); 86 } 87 88}

よろしくお願いいたします。

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

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

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

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

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

taku_

2018/10/17 15:20

ご指摘ありがとうございます。
taku_

2018/11/07 06:38

今回はデータとして文字列だけを扱い、かつ文字数も数千字程度なのでassetにtxtを保存して解決しました。
guest

回答2

0

自己解決

今回はデータが文字列だけであり、かつ数千字程度だったのでassetフォルダにtxtファイルを置いてそこからデータを取得できるようにしました。

投稿2018/11/07 06:40

taku_

総合スコア13

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

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

0

おはようございます。「SQLiteに保存してあるデータを取得」するのであれは、readData()内で読み込み処理が必要なのでは。
私は、普通の方法とは違うかもしれませんが、以下のように記述しています。
参考になれば。

public void SQLSelect(){ MyOpenHelper helper = new MyOpenHelper(this); SQLiteDatabase db = helper.getReadableDatabase(); /**セレクト文を作成する。*/ String sqlstr1 = "select memberCode, memberData from kingakuTable "; Cursor c = db.rawQuery(sqlstr1, null); boolean mov = c.moveToFirst(); while (mov){ TextView textView = new TextView(this); System.out.println("Select >>>> " + c.getString(0) + " : " + c.getInt(1)); textView.setText(c.getString(0)); mov = c.moveToNext(); } c.close(); db.close(); }

投稿2018/10/17 23:47

senior_golfer

総合スコア264

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問