ArrayAdapterや他のAdapterより、BaseAdapterを派生した方が、よりカスタマイズできる。
BaseAdapter | Android Developers
CustomAdapter.javaで、
namesとaddressesの少ない方を表示数とする。
MainActivity.javaで、
package com.bgstation0.android.sample.baseadapter_; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.BaseAdapter; import android.widget.ListView; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 配列の準備. final String[] names = { "Taro", "Jiro", "Saburo", "Shiro" }; final String[] addresses = { "Tokyo", "Osaka", "Nagoya"/*, "Sapporo"*/ }; // ListView取得. ListView listView1 = (ListView)findViewById(R.id.listview1); // customAdapter生成. BaseAdapter customAdapter = new CustomAdapter(this, names, addresses); // セット. listView1.setAdapter(customAdapter); // customAdapterをセット. } }
addressesを減らすと、
3つしか表示されない。
namesを減らしても、
同じ。
まあ、途中を減らした時のずれは解消できないけど。
Sample/android/BaseAdapter/BaseAdapter/src/BaseAdapter at master · bg1bgst333/Sample · GitHub