[Android] ListView と ArrayAdapter 簡単なテキストリストの表示

スマホでは色々な場面でリスト表示が使われます。リストのitemはダイナミックに増減できてスクロールすれば限られた画面内で多くの情報を扱えるためとても便利なわけです。
 

 

    ArrayAdapter
  1. ListView と ArrayAdapter 簡単なテキストリストの表示
  2. ArrayAdapterを使ってレイアウトをアレンジ
  3. ListActivity と ArrayAdapterで画像とテキストをリスト表示
    Basedapter
  1. BaseAdapterで画像とテキストをリスト表示
  2. ListViewリストをタップして画面遷移
  3. ListViewアイテムの移動、削除
  4. ListView アイテム個々の背景、高さなどを変える


 

Android Studio 3.0
Android 8.0

 



ListView

 
ListViewはスクロール可能なアイテムのリストを表示するViewグループです。
Adapterは配列またはデータベースなどからそれぞれの要素をリストに入れられるように変換し自動的に挿入してくれます。
 

 
ListViewに使うAdapterには用途に応じて ArrayAdapter、BaseAdapter、SimpleAdapterなどがあります。

  • ArrayAdapter
    • BaseAdapterを継承して、簡単な TextView のリストを表示する(これを継承してカスタムでアダプターを作ることも可能)
  • SimpleAdapter
    • Mapクラスを使ってリスト項目のレイアウトをカスタマイズする
  • BaseAdapter
    • レイアウトをカスタマイズする場合はこれを継承したカスタムアダプターを作る

今回は簡単なArrayAdapterを使って実装してみたいと思います。
 

ArrayAdapter

 
簡単な ListView(Context context) とArrayAdapterを使った設定方法です。
 
1. ListView インスタンス生成

 
2. setContentView にListViewのインスタンスを設定

 
3. ArrayAdapter のインスタンス生成

 
表示する文字配列 texts を入れますが、simple_list_item_1 は用意されている定義済みのレイアウトファイルのIDです。これを使うとリスト用のレイアウトファイルは不要です。
 
4. ArrayAdapter のインスタンスをListViewに設定

 
MainActivity.java

 
ListViewができました。
 

 
コードはこれだけです、簡単ですね。
 

レイアウト修正

 
文字を大きくしたり背景色を変えたりと色々バリエーションも可能です。

レイアウトを変更したい時は、ArrayAdapter の設定でレイアウトファイルを指定します。
simple_list_item_1 の代わりに自分で設定するレイアウトファイル、例えば list.xml をres\layout\以下に作って設定すればできます。

表示するリストを変えて、まとめるとこうなります

MainActivity.java

list.xml

 

 
Globeの楽曲リストが出来上がりました。曲をタップすると音楽が再生されるように作れば自分のオリジナルリストができますね。
 
References:
ListView
ArrayAdapter