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

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

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

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

Android

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

Android Studio

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

Q&A

0回答

665閲覧

Androidスタジオ:SQLiteからレコードを表示したいのですが、画面遷移にトリガーを持たせれない

makoto-n

総合スコア436

SQLite

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

Android

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

Android Studio

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

0グッド

0クリップ

投稿2019/03/11 23:42

編集2019/03/13 16:07

Androidスタジオで作成中のAndroidアプリ内で画面遷移をした際に同じAndroidアプリの遷移先ページで同じAndroidアプリで使用しているデータベースのSQLiteに保存されているレコードの一覧を表示するようにしたいです。
が、mainActivityから同じAndroidアプリに保存されているSQLiteのレコードの一覧を表示するためのアクティビティ(ItemsSeeActivity)にレイアウトの移動も出来なくなっています。
アプリが止まります。

ボタンがトリガーであればデータベースのSQLiteからレコード一覧の表示は出来ますが、同じAndroidアプリで同じAndroidアプリの別レイアウトへ画面遷移(読み込み)をトリガーにしてレコード一覧を表示することができませんでした。
そこのレクチャーをお願いします。

追加ソースが必要であれば教えてください。

java

1package com.example.xxxxx.sqlite03; 2 3import android.database.Cursor; 4import android.database.sqlite.SQLiteDatabase; 5import android.os.Bundle; 6import android.support.v7.app.AppCompatActivity; 7import android.widget.ArrayAdapter; 8import android.widget.ListView; 9import android.widget.TextView; 10 11import java.sql.Connection; 12import java.sql.Statement; 13import java.util.ArrayList; 14 15public class ItemsSeeActivity extends AppCompatActivity { 16 17 private TestOpenHelper helper; 18 19 protected void onCreate(Bundle savedInstanceState){ 20 super.onCreate(savedInstanceState); 21 setContentView(R.layout.activity_items_see); 22 ListView listView = findViewById(R.id.listView); 23 24 25 Connection connection = null; 26 Statement statement = null; 27 28 /** 29 * DBからデータを全件取得し画面に表示する. 30 * @param view 31 */ 32 helper = new TestOpenHelper(this); 33 Cursor c; 34 try (SQLiteDatabase db = helper.getReadableDatabase()) { 35 36 c = db.query( 37 "test_tbl", 38 new String[]{"ItemId", "ItemName", "ItemPrice"}, 39 null, 40 null, 41 null, 42 null, 43 null 44 ); 45 46 boolean mov = c.moveToFirst(); 47 48 ArrayList disp = new ArrayList<>(); 49 50 while (mov) { 51 disp.add(c.getInt(0) + " :" + c.getString(1) + "| " + c.getInt(2)); 52 mov = c.moveToNext(); 53 } 54 55 c.close(); 56 57 // リスト項目とListViewを対応付けるArrayAdapterを用意する 58 ArrayAdapter adapter = new ArrayAdapter<>( this, android.R.layout.simple_list_item_1, disp); 59 // エラー(?)で黄色になっています 60 61 // ListViewにArrayAdapterを設定する 62 listView.setAdapter(adapter); 63 } 64 65 } 66}

 
いちおうManifest.xmlです。

xml

1<?xml version="1.0" encoding="utf-8"?> 2<manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 package="com.example.xxxxx.sqlite03"> 5 6 <application 7 android:allowBackup="true" 8 android:icon="@mipmap/ic_launcher" 9 android:label="@string/app_name" 10 android:roundIcon="@mipmap/ic_launcher_round" 11 android:supportsRtl="true" 12 android:theme="@style/AppTheme" 13 tools:ignore="GoogleAppIndexingWarning"> 14 <activity android:name=".MainActivity"> 15 <intent-filter> 16 <action android:name="android.intent.action.MAIN" /> 17 18 <category android:name="android.intent.category.LAUNCHER" /> 19 </intent-filter> 20 </activity> 21 22 <activity android:name=".AddItemActivity"></activity> 23 <activity android:name=".CalculatorActivity"></activity> 24 <activity android:name=".ItemsSeeActivity"></activity> 25 <activity android:name=".RegiActivity"></activity> 26 27 </application> 28 29</manifest>

 
MainActivity

java

1import android.content.ContentValues; 2import android.content.Intent; 3import android.support.v7.app.AppCompatActivity; 4import android.os.Bundle; 5import android.database.Cursor; 6import android.database.sqlite.SQLiteDatabase; 7import android.view.View; 8import android.widget.Button; 9import android.widget.EditText; 10import android.widget.TextView; 11 12public class MainActivity 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_main); 21 22 23 // DB作成 24 helper = new TestOpenHelper(getApplicationContext()); 25 26// // 変数textViewに表示するテキストビューのidを格納 27// textView = findViewById(R.id.text_view); 28 29 // 商品登録 30 Button addItemBtn = findViewById(R.id.addItemBtn); 31 addItemBtn.setOnClickListener(new View.OnClickListener() { 32 @Override 33 public void onClick(View view) { 34 //インテントの作成 35 Intent intent = new Intent(getApplication(), AddItemActivity.class); 36 37 //遷移先の画面を起動 38 startActivity(intent); 39 } 40 }); 41 42 // 商品確認 43 Button seeBtn = findViewById(R.id.seeBtn); 44 seeBtn.setOnClickListener(new View.OnClickListener() { 45 @Override 46 public void onClick(View view) { 47 Intent intent = new Intent(getApplication(), ItemsSeeActivity.class); 48 49 startActivity(intent); 50 } 51 }); 52 53 // レジ買い物 54 Button RegiBtn = findViewById(R.id.RegiBtn); 55 RegiBtn.setOnClickListener(new View.OnClickListener() { 56 @Override 57 public void onClick(View view) { 58 Intent intent = new Intent(getApplication(), RegiActivity.class); 59 60 startActivity(intent); 61 } 62 }); 63 64 // 電卓 65 Button calculatorBtn = findViewById(R.id.calculatorBtn); 66 calculatorBtn.setOnClickListener(new View.OnClickListener() { 67 @Override 68 public void onClick(View view) { 69 Intent intent = new Intent(getApplication(), CalculatorActivity.class); 70 71 startActivity(intent); 72 } 73 }); 74 75 76 77 } 78 79}

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

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

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

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

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

jimbe

2019/03/12 09:53 編集

アプリが止まった時にエラー等は表示されていませんでしょうか. 画面遷移の際, MainActivity もしくは ItemsSeeActivity のどこまでのコードが実行されたかを, ご確認頂いていますか? データベースには何件のデータが入っていますか? MainActivity もご提示いただけますでしょうか.
jimbe

2019/03/12 09:53

お気を悪くさせてしまったようで御免なさい. 蛇足は削除致しました.
makoto-n

2019/03/13 16:12 編集

子供みたいなことを言ってしまい申し訳ありません。 ここで質問をして何もおっしゃらず追記・修正依頼だけをよくされるので喧嘩腰になっておりました。 本当に申し訳ないです。 jimbeさまにはよく回答をいただいておりました、失礼しました。 こちらこそお気を悪くさせてしまいすみません。
退会済みユーザー

退会済みユーザー

2019/03/13 16:33

> makoto-nさん > ここで質問をして何もおっしゃらず追記・修正依頼だけをよくされる これ実は仕方がないのですよ。 質問文が曖昧な時、追記しないと何に困っているか回答者はわかりません。そこで追記依頼をするわけですが、詳しく状況を聞くと、「ああ、自分の分野の問題じゃないな」ということが起こるわけです。知らないことに回答はできないのですから、致し方ないのです。
makoto-n

2019/03/13 16:56

Kosuke_Shibuyaさま > 詳しく状況を聞くと、「ああ、自分の分野の問題じゃないな」 そういう意思だったのですね 教えてくださりありがとうございます。 これからは出来る限り明確な質問を心がけます。
退会済みユーザー

退会済みユーザー

2019/03/13 17:00

それだけが理由でないことももちろんありますよ。 追記のやり取りだけで、何度も依頼しても、本当に国語力に乏しい質問者だったりする場合は必要な情報を全然出してこない人もいるし、やり取りしている間に、「あーもうめんどくさ!」ってその後放置する場合もあります。ボランティアなので回答する義務はありませんからね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問