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

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

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

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

Android

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

Android Studio

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

Q&A

解決済

2回答

1080閲覧

Android:SQLiteから出力するデータが次の行にセットされない。

makoto-n

総合スコア436

SQLite

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

Android

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

Android Studio

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

0グッド

0クリップ

投稿2019/02/10 09:15

編集2019/02/10 15:38

androidアプリ製作中です。
SQLiteを使用してデータを読み込もうとしていますが、
次の行に行かず、一つのフィールドに書き込んでしまいます
sqlite

ソースはこうです。

xml

1<?xml version="1.0" encoding="utf-8"?> 2 3<android.support.v4.widget.DrawerLayout 4 xmlns:app="http://schemas.android.com/apk/res-auto" 5 xmlns:tools="http://schemas.android.com/tools" 6 android:id="@+id/drawer_layout" 7 xmlns:android="http://schemas.android.com/apk/res/android" 8 android:layout_width="match_parent" 9 android:layout_height="match_parent"> 10 11 <ScrollView 12 android:layout_width="match_parent" 13 android:layout_height="match_parent"> 14 15 16 17 <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 18 xmlns:app="http://schemas.android.com/apk/res-auto" 19 xmlns:tools="http://schemas.android.com/tools" 20 android:layout_width="match_parent" 21 android:layout_height="match_parent" 22 tools:context=".MainActivity"> 23 24 <LinearLayout 25 android:id="@+id/liner" 26 android:layout_width="match_parent" 27 android:layout_height="50dp"> 28 29 <EditText 30 android:id="@+id/name" 31 android:layout_width="150dp" 32 android:layout_height="40dp" 33 android:ems="10" 34 android:inputType="text" 35 app:layout_constraintStart_toStartOf="@id/liner" /> 36 /> 37 38 <EditText 39 android:id="@+id/price" 40 android:layout_width="50dp" 41 android:layout_height="40dp" 42 android:ems="10" 43 android:inputType="text" 44 app:layout_constraintLeft_toRightOf="@+id/name" /> 45 46 47 <Button 48 android:id="@+id/Btn" 49 android:layout_width="60dp" 50 android:layout_height="50dp" 51 android:layout_alignParentRight="true" 52 android:text="詳細" 53 app:layout_constraintRight_toRightOf="@id/liner" 54 app:layout_constraintEnd_toEndOf="@id/liner"/> 55 56 </LinearLayout> 57 58 </android.support.constraint.ConstraintLayout> 59 60 61 </ScrollView> 62 63 64</android.support.v4.widget.DrawerLayout>

問題になっているJavaです。(テスト中のため、title,scoreとなっています。)

java

1 SQLiteDatabase db = helper.getReadableDatabase(); 2 Cursor cursor = db.query( 3 "testdb", 4 new String[]{"title", "score"}, 5 null, 6 null, 7 null, 8 null, 9 null 10 ); 11 12 cursor.moveToFirst(); 13 StringBuilder sName = new StringBuilder(); 14 StringBuilder sPrice = new StringBuilder(); 15 16 17 for (int i = 0; i < cursor.getCount(); i++) { 18// viewName.setText(cursor[i][0].getString()); 19// viewPrice.setText(cursor[i][1].getInt()); 20// cursor.moveToNext(); 21 sName.append(cursor.getString(0)); 22 23 sPrice.append(cursor.getInt(1)); 24 25 sName.append("\n\n"); 26 cursor.moveToNext(); 27 28 } 29 30 cursor.close(); 31 32 viewName.setText(sName.toString()); 33 viewPrice.setText(sPrice.toString());

参考サイト
上記のサイトのように複数行にデータを入れ込みたいです。


それと、詳細ボタンを右端に設定したいのですが、
色々試行錯誤しても解決できませんでした。

こちらも助言を頂けるとたすかります。
参考にしたサイト

よろしくお願いします。

追記

イメージ図
イメージ

スクロールもできるようにしたいです。

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

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

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

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

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

guest

回答2

0

android studio の Layout Editor で試した所, 以下で詳細ボタンが右端になりました.

xml

1<android.support.constraint.ConstraintLayout 2 android:layout_width="match_parent" 3 android:layout_height="match_parent"> 4 5 <EditText 6 android:id="@+id/name" 7 android:layout_width="150dp" 8 android:layout_height="40dp" 9 android:ems="10" 10 android:inputType="text" 11 app:layout_constraintTop_toTopOf="parent" 12 app:layout_constraintStart_toStartOf="parent" /> 13 14 <EditText 15 android:id="@+id/price" 16 android:layout_width="50dp" 17 android:layout_height="40dp" 18 android:ems="10" 19 android:inputType="text" 20 app:layout_constraintTop_toTopOf="parent" 21 app:layout_constraintLeft_toRightOf="@id/name" /> 22 23 <Button 24 android:id="@+id/Btn" 25 android:layout_width="60dp" 26 android:layout_height="50dp" 27 android:layout_alignParentRight="true" 28 android:text="詳細" 29 app:layout_constraintTop_toTopOf="parent" 30 app:layout_constraintEnd_toEndOf="parent"/> 31 32</android.support.constraint.ConstraintLayout>

投稿2019/02/10 12:59

jimbe

総合スコア12646

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

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

makoto-n

2019/02/10 15:17

上記ソースを試し、<ScrollView>を削除したところ右端表示になりました。 ありがとうございます。 <ScrollView>を適用するにはどうすればいいでしょうか?
jimbe

2019/02/10 15:36

ScrollView は中に含まれるレイアウト等が画面の縦方向を越えた大きさの場合にスクロールさせるモノです. このレイアウトは縦方向に画面を越えることは無いので, ScrollView を書いても意味は有りません.
guest

0

ベストアンサー

次の行に行かず、一つのフィールドに書き込んでしまいます。

"次の行" と呼べるものが xml に存在しておりません.
1つのフィールドに書き込んでいるのは, そのようにコードが書かれているからです

viewName.setText(sName.toString()); viewPrice.setText(sPrice.toString());

参考とされたという Android Studio初心者がSQLiteを使ってアプリ作成してみた(データの表示、追加) にはレイアウトが提示されていませんが, コード/画面からしますと, ボタンの下に id:text_view という TextView があります.
ボタンに関する処理も提示されていませんが, 表示ボタンを押すと readData が呼ばれ, データベースから全件を読み, (文字列を編集して)その text_view に書き込むという流れと思われます.
この表示を以って「複数行にデータを」と言われていると思いますが, その部分が全くありません.

投稿2019/02/10 11:57

編集2019/02/10 12:00
jimbe

総合スコア12646

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

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

makoto-n

2019/02/10 15:37

なるほど。 構想イメージを追加します。 画像のようにレコードを複数行xmlに記述する場合は、どうするべきでしょうか? xmlはJavaから要素を追加できませんか?
jimbe

2019/02/10 15:56 編集

「画像のように」というのはどの画像でしょう. 申し訳ないですが, お言葉が足りません. makoto-n さんが見ているものが見えるわけではありませんので, なるべく具体的にお願い致します. コードから要素を追加することは出来ますが, それは xml に要素(記述)を追加するイメージでは無く, "xml から生成したモノに要素を追加する" 形になります. ですが, この件ではその労力の割りに合うとは思えません. もし『「Android Studio初心者が~」で作成されている画面と同じにするためには』ということでしたら, 回答させて頂いた通り, TextView を追加し, DBアクセスの結果をそこに書き込む様, コードを追加・修正されれば宜しいかと思います.
makoto-n

2019/02/10 16:44

失礼しました。 追記---- 下部のイメージ図です。 おっしゃられる”xmlに要素を追加する形”が理想とするのですが、 Android studio初心者には労力がすぎるのかもしれません。 ありがとうございます。
jimbe

2019/02/10 19:07 編集

現在表示されている形が繰り返し並ぶのでしたら, ListView をお使いになると良いと思います(1つ1つ違う表示も可能です). スクロールの機能も付いています. 似たモノで RecyclerView というのもあり, こちらのほうが新しいですが, ListView の考え方をベースに作られているので, 先ずは ListView から…が良いと思います.
makoto-n

2019/02/10 19:25

わかりました! ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問