投稿

2月, 2023の投稿を表示しています

ListViewの使い方

イメージ
目次へ ListViewとは ListViewは複数のデータを表示するのに使いやすい部品です。 リスト項目は、リソースからあるいは、プログラムから生成することができます。 リソースとして配列を作成し、それをListViewに表示するだけなら Javaのコードを書かなくともできますが、項目を変更することができません。 項目を変更する必要がある場合には、ArrayAdapterを使い、Javaのコードを書くことになります。 この方法は こちら ご覧ください。 つぎのような画面を作りたい時に、各項目をstring-arrayとしてリソースフィルに作成し、activity_mainには、 ListViewを1つ作成し、android:entriesでstring-arrayのnameを指定します。   strings.xmlの例(リスト項目の配列を作成) <resources> <string name="app_name">>ListViewArray1</string> <string-array name="menu"> <item>ハンバーグ</item> <item>ステーキ</item> <item>カレーライス</item> <item>オムライス</item> <item>ナポリタン</item> <item>カルボナーラ</item> <item>ペスカトーレ</item> <item>グリーンサラダ</item> </string-array> </resources<...

ListViewとSimpleAdapter使い方

目次へ ListViewとAdapter ListViewは複数のデータを表示するのに使いやすい部品です。 データの一つ一つがひとつの項目からなるデータの場合にも、 データの一つが複数の項目からなり、2次元の表のような形になる場合にも使えます。 また、データ自体はAdapterクラスが管理し、Viewとの橋渡しを行います。 ここではSimpleAdapterを使ってListViewに表示させます。 SimpleAdapterを使うことにより、1つのデータの中に複数の項目が含まれていても 全てを簡単に表示できます。 データの型式は、ひとつのデータをMapで作成しそれをArrayListの中に入れていきます。 データがひとつの項目からなるような場合には、ArrayAdapterを使いもっと簡単に表示ができます。 この方法については こちら ご覧ください。 ListViewとSimpleAdapterの使い方 手順 レイアウトファイル(例:activity_main.xml)にListViewを作成します 1行分のデータをどのようなレイアウトで作成するかを示す レイアウトファイル(例:row.xml)を作成します ListViewの1番上にタイトルをつけるなら タイトル用のレイアウトファイル(例:row_header.xml)を作成します ArrayList<Map<String,Object>>の型式にしたデータを作成します Si...

ListViewとArrayAdapter使い方

目次へ ListViewとAdapter ListViewは複数のデータを表示するのに使いやすい部品です。 データの一つ一つがひとつの項目からなるデータの場合にも、 データの一つが複数の項目からなり、2次元の表のような形にするする場合にも使えます。 また、データ自体はAdapterクラスが管理し、Viewとの橋渡しを行います。 一番簡単な使い方は、複数のデータを配列あるいはリストの形で作成し、 ArrayAdapterを使ってListViewに表示させるものです。 ここではListViewとArrayAdapterを使う方法を説明します。 項目の表示をカスタマイズする場合には、SimpleAdapterを使います。 この方法は こちら ご覧ください。 ListViewとArrayAdapterの使い方 手順 レイアウトファイル(例:activity_main.xml)にListViewを作成します 1行分のデータをどのようなレイアウトで作成するかを示すレイアウトファイル(例:row.xml)を作成します ListViewの1番上にタイトルをつけるならレイアウトで作成するかを示す レイアウトファイル(例:row_header.xml)を作成します データの配列を作成します ArrayAdapterのインスタンスを作成し、1行分のレイアウトファイル(row.xml)と、その中のどこに表示するか、 データの配列を指定します。 ...

Sqlite使い方

目次へ Sqliteとは 軽量なオープンソースのRDBMSであり、Linux、Mac、Windows、Android、iOSなどに対応していますが、 Androidの場合、すべてのAndroid端末にSQLiteが搭載されているため、インストールなしで使えます。 データ型としては、TEXT,NUMERIC,INTEGER,REAL,NONE(指定なし)などが使えますが、 たとえば、INTEGER型のカラムに文字列を入れようとすると、数値に変換しようと試み、 だめなら文字列で格納してしまいます。 データ型の指定を強制しないため、データ型を指定せずにテーブルを作ることも可能です。 また、中規模程度までのデータベースであれば、その他のデータベースと遜色がない処理性能を発揮すると言われているようです。 AndroidからSqliteを使う Android 上でデータベースを利用する際に主に使用するAPIには以下のようなものがあります。 クラス 機能 パッケージ SQLiteOpenHelper DBの作成とアップグレードのためのメソッドを持つ。 これを継承したクラスを作成し、表の作成、アップグレード時の処理などを記述 android.database.sqlite SQLiteDatabase DB操作の各種メソッドを提供する たとえば query(),delete(),update(),insert(),beginTransaction(),endTransactin()等 SQLを渡す...
目次 別スレッドからUIスレッドを操作する方法 Handlerを使う Asynctaskを使う ListViewを使って複数のデータを表示する方法 ListViewを使う(リソースファイルで項目を指定) ListViewとArrayAdapterを使う ListViewとSimpleAdapterを使う SQLite使い方

AsyncTaskについて

目次へ AsyncTaskとは Androidでは、ユーザがアプリを起動すると、UIスレッド(メインスレッド)が作成され、 ユーザがタップするなどのイベントが発生すると、メッセージキューにそのイベントが並び、順番に実行されていきます。 そのため、UIスレッド上で実行する処理が非常に長いと、メッセージキューの次に並んでいる処理が実行できなくなるため、 UIスレッドでは、長い処理を行ってはいけないことになっており、通信などの長い時間のかかる処理は 別のスレッドを作成してその中で実行することになります。 しかし、画面の操作などは、UIスレッドでしか実行することができません。 UIスレッド以外のスレッドで、UIオブジェクトを参照したり変更したりするとクラッシュ、その他の不正動作が発生する可能性があります。 そのため、別スレッドからその結果を、画面に表示するなどの場合に使うのが、HandlerあるいはAsyncTaskです。 同じことができますが、ここではAsyncTaskを説明しますので。Handlerについては こちら をご覧ください。 AsyncTaskの実装と実行 AsyncTaskはThreadやRunnableを意識せず、別スレッドで実行したい処理を記述することができ、 さらにUIスレッドで実行する処理も記述できる抽象クラスです。 AsyncTaskの重要なメソッドはdoInBackgroundで、別スレッドで実行したい処理を記述します。 このメソッドは抽象メソッドであり必ず実装する必要があります。 この別スレッドでの処理に応じて画面を操作するために、onPreExecute、onPostExecute、 onProgressUpdateなどのメソッドがあります。 この3つのメソッドに書いた処理はUIスレッドで実行されますので、画面の操作ができます。 これらは、必要が無ければオーバーライドする必要はありません。 doInBackground  別スレッドで行う処理を書くメソッド onPreExecute  doInBackgrou...