[Android] ArrayAdapter を使ってレイアウトをアレンジする

手っ取り早くテキストだけの単純なリスト表示をしたところで、タイトルが欲しいのでヘッダーを追加したり、あるいは広告をフッターに貼りたいというよう要求が出てきます。

Android Studio
2021.2.1




ArrayAdapter

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

の続きで、
ヘッダーやフッター、タップでトーストを表示させてみましょう。

 
1x1.trans - [Android] ArrayAdapter を使ってレイアウトをアレンジする


 
 

Header & Footer

 

ヘッダーやフッターをListViewに追加するメソッド addHeaderView addFooterView があります。ただこれはちょっと期待したものと少し違うと(個人的に)思いましたので、汎用的作ってみました。作り方はいろいろあるとは思います。
 
レイアウトとしてRelativeLayoutを使いヘッダーはListViewとまとめてLinearLayoutに入れる。フッターとしてのボタンはBottomに張り付ける形です。
 
activity_main.xml

 
リソース
strings.xml

 
ListViewの中は、TextViewで設定します。
list.xml

 
このようにすれば、ListViewをレイアウトのViewの一部として扱えて便利になります。ただ最後のitemが見えなくなる可能性があります。空itemを使うなどの対応で解消できます。

 

item の add()

 

ArrayAdapterにitemを追加するにはadd()を使います。また、リスト表示しているitemを削除する場合はremove()です。insert()で挿入することもできます。

 

setOnItemClickListener

 

ここでは、add()を使って配列からitemを追加してリストを作り、itemをクリックするとその要素をToastで表示するようにしてみました。(lambda式を使い簡略化できます)
 

 
まとめると

MainActivity.java

 

 

Listのitemをダイナミックに追加したり削除したりはArrayListを使う方法 ListViewアイテムの移動、削除 で説明しています。
このケースではadd(), remove()などは使わずにArrayListの要素自体を追加・削除しています。個人的にはこの方法がやりやすいのですが、お好みです。
 
 

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

References:
ListView
ArrayAdapter

シェアする

  • このエントリーをはてなブックマークに追加

フォローする