1.きっかけ
斎藤新三著『Androidアプリ開発の教書(Kotlin版)初版第2刷』のp150の「2行のリストとSimpleAdapter]を写経していた際、ListViewに文字が表示されない(正確には、表示されているが、バックグラウンドと(ほぼ)同色で見えない)事象を発見したので報告します。この事象は先にご紹介したArrayAdapterの使い方の場合と同様の原因と考えます。
下の写真は、エミュレータAPIレベル19で動作させた状態です。
2.対策
対策は本書のリスト7.3のSimpleAdapterの第1引数をapplicationContextからthisに変更します。
//リスト7.3抜粋
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
~省略~
//SimpleAdapterを生成
// (元)val adapter = SimpleAdapter(applicationContext, menuList, android.R.layout.simple_list_item_2, from, to)
val adapter = SimpleAdapter(this, menuList, android.R.layout.simple_list_item_2, from, to)
//applicationContextからthisに変更
//アダプタの登録
lvMenu.adapter = adapter
}
~省略~
}
3.結果
4.動作環境
Android Studio 4.1
Build #AI-201.8743.12.41.6858069, built on September 24, 2020
Runtime version: 1.8.0_242-release-1644-b01 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0
GC: ParNew, ConcurrentMarkSweep
Memory: 1237M
Cores: 8
Registry: ide.new.welcome.screen.force=true
Non-Bundled Plugins: com.thoughtworks.gauge