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}
あなたの回答
tips
プレビュー