・ListViewの使い方をが知りたい
・Android Studioでスクロール可能なリストを作成したい
という方に向けた記事になります。
ListViewを使用すると、垂直方向にスクロール可能なリストを作成できます。リストに表示する項目は「配列」または「DBのデータ」より、Adapter(アダプター)を用いて取得します。
本記事では、ListViewの使い方について解説します。Adapterとは?という所から、実際にスクロール可能な以下のようなリストを作成しながらListViewの使い方を見ていきましょう!
Android ListViewとは?
Android ListViewは複数のデータをリスト形式で表示します。データが画面内に収まらない場合は垂直方向にスクロールが可能です。
使用例として、電話帳やチャット履歴があげられます。
ListViewは「Adapter(アダプター)」を利用して、データをリスト表示します。AdapterはListView(UI)とデータソースをつなぐ橋渡し役になります。
ListViewで利用できるAdapterは複数ありますが、基本は「ArrayAdapter」や「BaseAdapter」です。
ArrayAdapterは単純なテキストリストを表示したい場合、BaseAdapterは複雑なレイアウトやビューを含むリストを表示したい場合に使用します。
ArrayAdapterを用いて、単純なテキストリストを表示する方法を見ていきましょう。
Android ListViewの作成手順
Android ListViewの作成手順は以下の通りです。ここでは、例として果物のリストを表示していきます。
- レイアウトファイルにListViewを追加する
- リスト表示したい文字列を配列にセットする
- Adapterを用いてデータをListViewにバインドする
一つずつ見ていきます。
レイアウトファイルにListViewを追加する
まず、レイアウトファイル(activity_main.xml)にListViewを追加して、リストを表示する枠を作成します。
●activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@+id/lvFruit" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
リスト表示したい文字列を配列にセットする
次に、リスト表示したい文字列を配列にセットします。今回は果物のリストを表示するため、果物の名前を配列にセットしていきます。
●MainActivity.java
package com.hyomolution.listviewsample; import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String[] fruit = { "イチゴ", "レモン", "ミカン", "カキ", "パイナップル", "キウイ", "グレープフルーツ", "サクランボ", "ナシ", "バナナ", "アセロラ", "ビワ", "ブドウ", "メロン", "マンゴー", "モモ", "リンゴ", "ライチ", "スイカ", "スモモ" }; } }
スクロール可能なリストを作成したいので、少し項目が多いです。
めんどくさい場合はコピペで大丈夫です。
Adapterを用いてデータをListViewにバインドする
先ほど作成した果物リスト(配列)をもとに、ArrayAdapterオブジェクトを作成します。(果物リストをListViewにバインドする前に、一時領域に保存しているようなイメージ。)
ArrayAdapterオブジェクトを作成する際、引数が3つ必要になります。
第一引数「コンテキスト」
第二引数「ListViewの各行のレイアウト(基本的なレイアウトでは以下の文字列)」
第三引数「リストデータ(配列)」
//配列の下に記述してください ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>( this, android.R.layout.simple_list_item_1, fruit );
作成したArrayAdapterオブジェクトをListViewにバインドします。(果物リストのデータがListViewにセットされる)
//ArrayAdapterの下に記述してください ListView listView = findViewById(R.id.lvFruit); listView.setAdapter(arrayAdapter);
以上で、ListViewとリストデータが結びつきました。アプリを実行して、リストデータが画面に表示されるか・スクロール可能かを確認しましょう。
まとめ
Android ListViewの使い方について解説しました。
ListViewでは複数のデータをリスト形式で表示可能なことが分かりました。今回は基本的なリストを作成しましたが、カスタマイズも可能です。複数レイアウトを組み合わせるなど、柔軟にリスト表示ができるようになっていきましょう。