ArrayAdapterを使った...">

株式会社八角研究所 > 【連載】Android Tips - 第3回 ListViewを交互にカラーリングする

エンジニア募集中!

独立心旺盛で、新しい技術で新しいWebサービスを作りたいと思っているけれど、ひとりでやることに限界を感じているフリーのエンジニアの方。あなたの期待にこたえられる仲間と環境を、八角研究所なら提供できると思います。社員としてではない関わり方も、あるかもしれません。

2009年09月07日 10:39

Android Tips
第3回 ListViewを交互にカラーリングする * * * *

by tunakan

Tags: Java Androidアプリ作りたい 小ネタ

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でも同様の方法が使用できます。

この記事の執筆者

九州男児 tunakan 28歳 入社2年目

内臓が全般的に弱いです。データベースは苦手なのに変なデーターベースに当たることが多い気がします。

この人の会社をみる この人関連のイベントをさがす この人と一緒にはたらく

この日記にコメントする

(メールアドレスは公開されません。メールで返答が欲しい場合などに入力してください)

このエントリへのトラックバックURL

コメント

コメントはありません

トラックバック

トラックバックはありません

メンバー紹介

はち子さん

はち子

広報を担当している、はち子です。本当は広報じゃなくて事務デスが、広報って言うほうがかっこいいし! 社内でゆいいつ、...

boy

boy

少年です。 18歳以下(嘘)でも立派に社員です。 よろしくおねがいします。

sugimaru

sugimaru

すぎまるです。22時のシンデレラです。