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}
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー