トップ » はっかかー日記 » [Android Tips#3]ListViewを交互にカラーリングする

[Android Tips#3]ListViewを交互にカラーリングする

タグ: Android Java

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 :