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

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

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

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

Android

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

Q&A

解決済

1回答

494閲覧

androidでダイアログにリスト表示したい

syosinsya109

総合スコア41

Java

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

Android

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

0グッド

0クリップ

投稿2023/02/05 13:28

編集2023/02/05 13:29

実現したいこと

androidについて質問します。ボタンを押したらダイアログが表示されて、ダイアログ内にデータベースの内容を出力するというプログラムを作成しております。しかし一向にうまくいきません。どこら辺が間違えているのでしょうか。

該当のソースコード

java(DatabaseHelper.java)

1import android.content.Context; 2import android.database.sqlite.SQLiteDatabase; 3import android.database.sqlite.SQLiteOpenHelper; 4 5public class DatabaseHelper extends SQLiteOpenHelper { 6 private static final String DATABASE_NAME = "Sample.db"; 7 private static final int DATABASE_VERSION = 1; 8 9 /** 10 * コンストラクタ。 11 * 12 * @param context コンテキスト 13 */ 14 public DatabaseHelper(Context context){ 15 super(context, DATABASE_NAME, null, DATABASE_VERSION); 16 } 17 18 @Override 19 public void onCreate(SQLiteDatabase db){ 20 //ユーザー情報 21 StringBuffer sb = new StringBuffer(); 22 sb.append("CREATE TABLE sample ("); 23 sb.append("_id INTEGER PRIMARY KEY AUTOINCREMENT,"); 24 sb.append("name TEXT NOT NULL,"); 25 sb.append("age INTEGER NOT NULL"); 26 sb.append(");"); 27 String sql = sb.toString(); 28 29 db.execSQL(sql); 30 } 31 32 @Override 33 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){ 34 } 35}

java(SampleDAO.java)

1import android.database.Cursor; 2import android.database.sqlite.SQLiteDatabase; 3import android.database.sqlite.SQLiteStatement; 4 5public class SampleDAO { 6 public static Cursor findAll(SQLiteDatabase db){ 7 String sql = "SELECT * FROM sample"; 8 Cursor cursor = db.rawQuery(sql, null); 9 return cursor; 10 } 11 12 public static long insert(SQLiteDatabase db, String name, int age){ 13 String sql = "INSERT INTO sample (name, age) VALUES (?, ?)"; 14 SQLiteStatement stmt = db.compileStatement(sql); 15 stmt.bindString(1, name); 16 stmt.bindLong(2, age); 17 long insertedId = stmt.executeInsert(); 18 return insertedId; 19 } 20}

java(MainActivity.java)

1import androidx.appcompat.app.AlertDialog; 2import androidx.appcompat.app.AppCompatActivity; 3 4import android.content.DialogInterface; 5import android.content.res.Resources; 6import android.database.Cursor; 7import android.database.sqlite.SQLiteDatabase; 8import android.graphics.Color; 9import android.os.Bundle; 10import android.view.LayoutInflater; 11import android.view.View; 12import android.view.ViewGroup; 13import android.widget.Button; 14import android.widget.ImageView; 15import android.widget.ListView; 16import android.widget.SimpleCursorAdapter; 17 18import java.util.ArrayList; 19 20public class MainActivity extends AppCompatActivity { 21 /** 22 * データベースヘルパーオブジェクト。 23 */ 24 private DatabaseHelper _helper; 25 private int a = 0; 26 @Override 27 protected void onCreate(Bundle savedInstanceState) { 28 super.onCreate(savedInstanceState); 29 setContentView(R.layout.activity_main); 30 31 _helper = new DatabaseHelper(this); 32 SQLiteDatabase db = _helper.getWritableDatabase(); 33 34 Button btn = findViewById(R.id.button); 35 btn.setOnClickListener((View v) -> { 36 LayoutInflater inflater = this.getLayoutInflater(); 37 View dialogView = inflater.inflate(R.layout.list, null, false); 38 39 //ダイアログのリストを取得 40 ListView dialogReportList = dialogView.findViewById(R.id.listView); 41 Cursor cursor = SampleDAO.findAll(db); 42 String[] from = {"_id", "name"}; 43 int[] to = {android.R.id.text1, android.R.id.text2}; 44 SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cursor, from, to, 0); 45 dialogReportList.setAdapter(adapter); 46 47 //ダイアログ作成 48 AlertDialog.Builder builder = new AlertDialog.Builder(this); 49 builder.setView(dialogView); 50 51 builder.setNegativeButton("キャンセル", new DialogInterface.OnClickListener() { 52 @Override 53 public void onClick(DialogInterface dialog, int which) { 54 } 55 }); 56 57 //ダイアログ出力 58 AlertDialog alertDialog = builder.create(); 59 alertDialog.setCanceledOnTouchOutside(false); 60 alertDialog.show(); 61 }); 62 } 63}

xml(activity_main.xml)

1<?xml version="1.0" encoding="utf-8"?> 2<androidx.constraintlayout.widget.ConstraintLayout 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 xmlns:app="http://schemas.android.com/apk/res-auto" 5 xmlns:tools="http://schemas.android.com/tools" 6 android:layout_width="match_parent" 7 android:layout_height="match_parent" 8 tools:context=".MainActivity"> 9 10 11 <Button 12 android:id="@+id/button" 13 android:layout_width="wrap_content" 14 android:layout_height="wrap_content" 15 android:layout_marginStart="8dp" 16 android:layout_marginTop="8dp" 17 android:text="ダイアログに表示" 18 app:layout_constraintStart_toStartOf="parent" 19 app:layout_constraintTop_toTopOf="parent" /> 20</androidx.constraintlayout.widget.ConstraintLayout>

xml(list.xml)

1<?xml version="1.0" encoding="utf-8"?> 2<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 xmlns:tools="http://schemas.android.com/tools" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent"> 7 <ListView 8 android:id="@+id/listView" 9 android:layout_width="0dp" 10 android:layout_height="0dp" 11 android:layout_marginStart="8dp" 12 android:layout_marginTop="8dp" 13 android:layout_marginEnd="8dp" 14 android:layout_marginBottom="8dp" 15 app:layout_constraintBottom_toBottomOf="parent" 16 app:layout_constraintEnd_toEndOf="parent" 17 app:layout_constraintStart_toStartOf="parent" 18 app:layout_constraintTop_toTopOf="parent" /> 19</androidx.constraintlayout.widget.ConstraintLayout>

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

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

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

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

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

guest

回答1

0

自己解決

自己解決しました。
list.xmlに書いてあるlayout_height属性をwrap_contentに変えたら動きました

投稿2023/02/06 05:28

syosinsya109

総合スコア41

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問