[Android Tips#3]ListViewを交互にカラーリングする
ListViewの行を下図のように交互にカラーリングする方法を紹介します。
ビューのXMLは、下記のような単純なものです。
<?xml version="1.0" encoding="utf-8"?>
ArrayAdapterを使った一般的な方法でリストを表示します。
public class ListViewTest extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView listView = (ListView) findViewById(R.id.list);
listView.setAdapter(new ArrayAdapter(this,
android.R.layout.simple_list_item_1, new String[] { “Apple”,
“Banana”, “Melon”, “Orange” }));
}
}
交互にカラーリングするには、ArrayAdapter#getViewをオーバーライドし、行の位置に応じて背景色を変えるだけです。
public class ListViewTest extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView listView = (ListView) findViewById(R.id.list);
listView.setAdapter(new ArrayAdapter(this
, android.R.layout.simple_list_item_1, new String[]{
“Apple”, “Banana”, “Melon”, “Orange”}) {
@Override
public View getView(int position, View convertView,
ViewGroup parent) {
View view = super.getView(position, convertView, parent);
if (position%2 ==0) {
view.setBackgroundColor(Color.RED);
}
else {
view.setBackgroundColor(Color.BLUE);
}
return view;
}
});
}
}
ArrayAdapter以外のListAdapterでも同様の方法が使用できます。
TrackBack URL :
