name_untitledのエッセイ

IT関係で知ったことなどを記事としてあげていきます。内容に不備や質問などあればぜひコメントをよせてください。

Android Studio カスタムレイアウトでListViewを作ろうとしたらめちゃくちゃはまった。

まずは概要まで。

ListViewはTextView1つのみのシンプルなやつと、自分でレイアウトを作るやつとある。

シンプルなやつはこのサイトが参考になりそう。

java - android.content.res.Resources$NotFoundException: File from xml type layout resource ID #0x1020014 - Stack Overflow

自分でレイアウトを作る場合は、ArrayAdapterを継承して、データ1件を1行のレイアウトのどのViewに割り当てるかを定義したメソッドを書く必要がある。書き方はこの辺りのサイトを参考にした。

ListViewの行にカスタムレイアウトを使う方法 - Qiita

Using an ArrayAdapter with ListView | CodePath Android Cliffnotes

ArrayAdapterをつかったカスタムリスト - なか日記

 

それはそれとして、ちゃんと書いたつもりなのに、デバッグするたびAdapterのTextViewへの値の設定処理で落ちる。Android Studioで、R.id.TextViewを右クリックして、Go to Declarationを選んだところ、遷移先の候補が複数表示され、どうもAndroid Studioの中ではちゃんと見えていない様子。

そこで、クリーンしたり、リビルドしたり、Android Studioを開き直したりしたらきれいに出るようになりました。

 

ListViewではレイアウトを使いまわしているのだけれど、それを分かりやすい絵で説明しているサイトが2つひっかかったのでそれもここに載せとく。

Adapter#getViewの挙動について - hyoromoのブログ

Using an ArrayAdapter with ListView | CodePath Android Cliffnotes