ListActivity サンプル

ListActivityとArrayAdapterを使用したシンプルなリスト

ListViewActivity01

package com.objectfanatics.android.prj00019;

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;

/**
 * Activity 全体を ListView として扱うために ListActivity を継承しています。setContentView(int) を呼び出す必要がないのでコードが単純になります。
 */
public class ListViewActivity01 extends ListActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
    	  super.onCreate(savedInstanceState);
    	  
    	  // リストに表示する国名の配列を文字列リソースから取得します。
    	  String[] countryNamesList = getResources().getStringArray (R.array.country_names_list);

    	  // ArrayAdapter はオブジェクトの配列をリストの要素として扱うためのクラスです。
    	  // 型変数には配列の要素の型が入ります。今回は文字列を扱うために <String> が指定されています。
    	  // 第一引数は Context なので this を渡しています。
    	  // 第二引数は各行の表示に対応するレイアウトを含んでいるレイアウトファイルのリソース ID なので今回は layout/listview_01_list_item.xml ファイルを作成して指定しています。
    	  // 第三引数は ListView に表示される文字列の配列を指定します。
    	  ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, R.layout.listview_01_list_item, countryNamesList);
    	  
    	  // ListView に ArrayAdapter を渡すことにより、ListView は表示する内容を認識します。
    	  setListAdapter(arrayAdapter);
    }
}

listview_01_list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
</TextView>

strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string
        name="app_name">prj00019_ListViewSample</string>

    <string-array
        name="country_names_list">
        <item>Afghanistan</item>
        <item>Albania</item>
        <item>Algeria</item>
        <item>American Samoa</item>
        <item>Andorra</item>
        <item>Angola</item>
        <item>Anguilla</item>
        <item>Antarctica</item>
        <item>Antigua and Barbuda</item>
        <item>Argentina</item>
        <item>Armenia</item>
        <item>Aruba</item>
        <item>Australia</item>
        <item>Austria</item>
        <item>Azerbaijan</item>
        <item>Bahrain</item>
        <item>Bangladesh</item>
        <item>Barbados</item>
        <item>Belarus</item>
        <item>Belgium</item>
        <item>Belize</item>
        <item>Benin</item>
        <item>Bermuda</item>
        <item>Bhutan</item>
        <item>Bolivia</item>
        <item>BosniaandHerzegovina</item>
        <item>Botswana</item>
        <item>BouvetIsland</item>
        <item>Brazil</item>
        <item>BritishIndianOceanTerritory</item>
        <item>BritishVirginIslands</item>
        <item>Brunei</item>
        <item>Bulgaria</item>
        <item>BurkinaFaso</item>
        <item>Burundi</item>
        <item>Coted\'Ivoire</item>
        <item>Cambodia</item>
        <item>Cameroon</item>
        <item>Canada</item>
        <item>CapeVerde</item>
        <item>CaymanIslands</item>
        <item>CentralAfricanRepublic</item>
        <item>Chad</item>
        <item>Chile</item>
        <item>China</item>
        <item>ChristmasIsland</item>
        <item>Cocos(Keeling)Islands</item>
        <item>Colombia</item>
        <item>Comoros</item>
        <item>Congo</item>
        <item>CookIslands</item>
        <item>CostaRica</item>
        <item>Croatia</item>
        <item>Cuba</item>
        <item>Cyprus</item>
        <item>CzechRepublic</item>
        <item>DemocraticRepublicoftheCongo</item>
        <item>Denmark</item>
        <item>Djibouti</item>
        <item>Dominica</item>
        <item>DominicanRepublic</item>
        <item>EastTimor</item>
        <item>Ecuador</item>
        <item>Egypt</item>
        <item>ElSalvador</item>
        <item>EquatorialGuinea</item>
        <item>Eritrea</item>
        <item>Estonia</item>
        <item>Ethiopia</item>
        <item>FaeroeIslands</item>
        <item>FalklandIslands</item>
        <item>Fiji</item>
        <item>Finland</item>
        <item>FormerYugoslavRepublicofMacedonia</item>
        <item>France</item>
        <item>FrenchGuiana</item>
        <item>FrenchPolynesia</item>
        <item>FrenchSouthernTerritories</item>
        <item>Gabon</item>
        <item>Georgia</item>
        <item>Germany</item>
        <item>Ghana</item>
        <item>Gibraltar</item>
        <item>Greece</item>
        <item>Greenland</item>
        <item>Grenada</item>
        <item>Guadeloupe</item>
        <item>Guam</item>
        <item>Guatemala</item>
        <item>Guinea</item>
        <item>Guinea-Bissau</item>
        <item>Guyana</item>
        <item>Haiti</item>
        <item>HeardIslandandMcDonaldIslands</item>
        <item>Honduras</item>
        <item>HongKong</item>
        <item>Hungary</item>
        <item>Iceland</item>
        <item>India</item>
        <item>Indonesia</item>
        <item>Iran</item>
        <item>Iraq</item>
        <item>Ireland</item>
        <item>Israel</item>
        <item>Italy</item>
        <item>Jamaica</item>
        <item>Japan</item>
        <item>Jordan</item>
        <item>Kazakhstan</item>
        <item>Kenya</item>
        <item>Kiribati</item>
        <item>Kuwait</item>
        <item>Kyrgyzstan</item>
        <item>Laos</item>
        <item>Latvia</item>
        <item>Lebanon</item>
        <item>Lesotho</item>
        <item>Liberia</item>
        <item>Libya</item>
        <item>Liechtenstein</item>
        <item>Lithuania</item>
        <item>Luxembourg</item>
        <item>Macau</item>
        <item>Madagascar</item>
        <item>Malawi</item>
        <item>Malaysia</item>
        <item>Maldives</item>
        <item>Mali</item>
        <item>Malta</item>
        <item>MarshallIslands</item>
        <item>Martinique</item>
        <item>Mauritania</item>
        <item>Mauritius</item>
        <item>Mayotte</item>
        <item>Mexico</item>
        <item>Micronesia</item>
        <item>Moldova</item>
        <item>Monaco</item>
        <item>Mongolia</item>
        <item>Montserrat</item>
        <item>Morocco</item>
        <item>Mozambique</item>
        <item>Myanmar</item>
        <item>Namibia</item>
        <item>Nauru</item>
        <item>Nepal</item>
        <item>Netherlands</item>
        <item>NetherlandsAntilles</item>
        <item>NewCaledonia</item>
        <item>NewZealand</item>
        <item>Nicaragua</item>
        <item>Niger</item>
        <item>Nigeria</item>
        <item>Niue</item>
        <item>NorfolkIsland</item>
        <item>NorthKorea</item>
        <item>NorthernMarianas</item>
        <item>Norway</item>
        <item>Oman</item>
        <item>Pakistan</item>
        <item>Palau</item>
        <item>Panama</item>
        <item>PapuaNewGuinea</item>
        <item>Paraguay</item>
        <item>Peru</item>
        <item>Philippines</item>
        <item>PitcairnIslands</item>
        <item>Poland</item>
        <item>Portugal</item>
        <item>PuertoRico</item>
        <item>Qatar</item>
        <item>Reunion</item>
        <item>Romania</item>
        <item>Russia</item>
        <item>Rwanda</item>
        <item>SqoTomeandPrincipe</item>
        <item>SaintHelena</item>
        <item>SaintKittsandNevis</item>
        <item>SaintLucia</item>
        <item>SaintPierreandMiquelon</item>
        <item>SaintVincentandtheGrenadines</item>
        <item>Samoa</item>
        <item>SanMarino</item>
        <item>SaudiArabia</item>
        <item>Senegal</item>
        <item>Seychelles</item>
        <item>SierraLeone</item>
        <item>Singapore</item>
        <item>Slovakia</item>
        <item>Slovenia</item>
        <item>SolomonIslands</item>
        <item>Somalia</item>
        <item>SouthAfrica</item>
        <item>SouthGeorgiaandtheSouthSandwichIslands</item>
        <item>SouthKorea</item>
        <item>Spain</item>
        <item>SriLanka</item>
        <item>Sudan</item>
        <item>Suriname</item>
        <item>SvalbardandJanMayen</item>
        <item>Swaziland</item>
        <item>Sweden</item>
        <item>Switzerland</item>
        <item>Syria</item>
        <item>Taiwan</item>
        <item>Tajikistan</item>
        <item>Tanzania</item>
        <item>Thailand</item>
        <item>TheBahamas</item>
        <item>TheGambia</item>
        <item>Togo</item>
        <item>Tokelau</item>
        <item>Tonga</item>
        <item>TrinidadandTobago</item>
        <item>Tunisia</item>
        <item>Turkey</item>
        <item>Turkmenistan</item>
        <item>TurksandCaicosIslands</item>
        <item>Tuvalu</item>
        <item>VirginIslands</item>
        <item>Uganda</item>
        <item>Ukraine</item>
        <item>UnitedArabEmirates</item>
        <item>UnitedKingdom</item>
        <item>UnitedStates</item>
        <item>UnitedStatesMinorOutlyingIslands</item>
        <item>Uruguay</item>
        <item>Uzbekistan</item>
        <item>Vanuatu</item>
        <item>VaticanCity</item>
        <item>Venezuela</item>
        <item>Vietnam</item>
        <item>WallisandFutuna</item>
        <item>WesternSahara</item>
        <item>Yemen</item>
        <item>Yugoslavia</item>
        <item>Zambia</item>
        <item>Zimbabwe</item>
    </string-array>
</resources>

ListViewActivity01 を継承し、リストの要素をクリックされた場合の振る舞いを追加したもの

ListViewActivity02.java

package com.objectfanatics.android.prj00019;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

/**
 * ListViewActivity01 を継承し、リストの要素をクリックされた場合の振る舞いを追加しています。
 */
public class ListViewActivity02 extends ListViewActivity01 {
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		// この Activity に対応する ListView を取得
		ListView lv = getListView();

		// ListView のアイテムがクリックされた場合の振る舞いを登録
		lv.setOnItemClickListener(new OnItemClickListener() {
			public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
				
				// 指定された行の文字列を取得
				CharSequence rowString = ((TextView) view).getText();

				// クリックされたら対応する文字列を Toast で表示
				Toast.makeText(getApplicationContext(), rowString, Toast.LENGTH_SHORT).show();
			}
		});
	}
}

ListView の各行に 独自に定義した TextView を使用

ListViewActivity03

package com.objectfanatics.android.prj00019;

import android.app.ListActivity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

/**
 * ListView の各行に 独自に定義した TextView を使用しています。
 */
public class ListViewActivity03 extends ListActivity {
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		// リストに表示する国名の配列を文字列リソースから取得します。
		final String[] countryNamesList = getResources().getStringArray(R.array.country_names_list);

		// ArrayAdapter はオブジェクトの配列をリストの要素として扱うためのクラスです。
		// 型変数には配列の要素の型が入ります。今回は文字列を扱うために <String> が指定されています。
		// 第一引数は Context なので this を渡しています。
		// 第二引数は各行の表示に対応するレイアウトを含んでいるレイアウトファイルのリソース ID なので今回は
		// layout/listview_01_list_item.xml ファイルを作成して指定しています。
		// 第三引数は ListView に表示される文字列の配列を指定します。
		ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, R.layout.listview_01_list_item, countryNamesList) {
			@Override
			public View getView(int position, View convertView, ViewGroup parent) {
				// ビューを受け取る  
				TextView textView = (TextView)convertView;  
				if (textView == null) {  
					// 受け取ったビューがnullなら新しくビューを生成  
					textView = (TextView)((LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.row_01, null); 
				}
				textView.setText(countryNamesList[position]);
				return textView;
			}
		};

		// ListView に ArrayAdapter を渡すことにより、ListView は表示する内容を認識します。
		setListAdapter(arrayAdapter);
	}
}

row_01.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content">
</TextView>

ListView の各行に ImageView や TextView を組み合わせた独自の View を使用した例

ListViewActivity04

package com.objectfanatics.android.prj00019;

import android.app.ListActivity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

/**
 * ListView の各行に ImageView や TextView を組み合わせた独自の View を使用しています。
 */
public class ListViewActivity04 extends ListActivity {
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		// リストに表示する国名の配列を文字列リソースから取得します。
		final String[] countryNamesList = getResources().getStringArray(R.array.country_names_list);

		// ArrayAdapter はオブジェクトの配列をリストの要素として扱うためのクラスです。
		// 型変数には配列の要素の型が入ります。今回は文字列を扱うために <String> が指定されています。
		// 第一引数は Context なので this を渡しています。
		// 第二引数は各行の表示に対応するレイアウトを含んでいるレイアウトファイルのリソース ID なので今回は
		// layout/listview_01_list_item.xml ファイルを作成して指定しています。
		// 第三引数は ListView に表示される文字列の配列を指定します。
		ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, R.layout.row_02, countryNamesList) {
			@Override
			public View getView(int position, View convertView, ViewGroup parent) {
				
				if (convertView == null) {  
					// 受け取ったビューがnullなら新しくビューを生成  
					convertView = (View)((LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.row_02, null); 
				}
				TextView textView = (TextView)convertView.findViewById(R.id.row_02_textView);
				textView.setText(countryNamesList[position]);
				return convertView;
			}
		};

		// ListView に ArrayAdapter を渡すことにより、ListView は表示する内容を認識します。
		setListAdapter(arrayAdapter);
	}
}

row_02.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/icon" />
    <TextView
        android:id="@+id/row_02_textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_weight="1" />
</LinearLayout>

システムのデフォルトのアイコンとその名前を表示するサンプル

ListViewActivity05.java

package com.objectfanatics.android.prj00019;

import android.app.ListActivity;
import android.content.Context;
import android.content.res.Resources.NotFoundException;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

/**
 * システムのデフォルトのアイコンとその名前を表示します。
 */
public class ListViewActivity05 extends ListActivity {
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		ArrayAdapter<ImageResource> arrayAdapter = new ArrayAdapter<ImageResource>(this, R.layout.listview_01_list_item, imageResources) {
			@Override
			public View getView(int position, View convertView, ViewGroup parent) {
				
				// View が null の場合
				if (convertView == null) {  
					
					// View が null のため新しくビューを生成する
					convertView = (View)((LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.row_03, null); 
				}
				
				// アイコンを表示するための view を取得する
				ImageView iconImageView = (ImageView)convertView.findViewById(R.id.iconImageView);
				
				try {
					// 表示すべき Drawable を取得する。対象が存在しない場合は NotFoundException がスローされる
					getResources().getDrawable(imageResources[position].id);
					iconImageView.setImageResource(imageResources[position].id);
				} catch (NotFoundException e) {
					// 対象の Drawable が存在しないため、代わりに R.drawable.icon を表示する。
					Log.d("", "Resource " + imageResources[position].name + " Not Found.");
					iconImageView.setImageResource(R.drawable.icon);
				}
				TextView textView = (TextView)convertView.findViewById(R.id.textImageView);
				textView.setText(imageResources[position].name);
					
				return convertView;
			}
		};

		setListAdapter(arrayAdapter);
	}
	
	private final ImageResource[] imageResources = new ImageResource[] {
		new ImageResource("alert_dark_frame", android.R.drawable.alert_dark_frame),
		new ImageResource("alert_light_frame", android.R.drawable.alert_light_frame),
		new ImageResource("arrow_down_float", android.R.drawable.arrow_down_float),
		new ImageResource("arrow_up_float", android.R.drawable.arrow_up_float),
		new ImageResource("bottom_bar", android.R.drawable.bottom_bar),
		new ImageResource("btn_default", android.R.drawable.btn_default),
		new ImageResource("btn_default_small", android.R.drawable.btn_default_small),
		new ImageResource("btn_dialog", android.R.drawable.btn_dialog),
		new ImageResource("btn_dropdown", android.R.drawable.btn_dropdown),
		new ImageResource("btn_minus", android.R.drawable.btn_minus),
		new ImageResource("btn_plus", android.R.drawable.btn_plus),
		new ImageResource("btn_radio", android.R.drawable.btn_radio),
		new ImageResource("btn_star", android.R.drawable.btn_star),
		new ImageResource("btn_star_big_off", android.R.drawable.btn_star_big_off),
		new ImageResource("btn_star_big_on", android.R.drawable.btn_star_big_on),
		new ImageResource("button_onoff_indicator_off", android.R.drawable.button_onoff_indicator_off),
		new ImageResource("button_onoff_indicator_on", android.R.drawable.button_onoff_indicator_on),
		new ImageResource("checkbox_off_background", android.R.drawable.checkbox_off_background),
		new ImageResource("checkbox_on_background", android.R.drawable.checkbox_on_background),
		new ImageResource("dark_header", android.R.drawable.dark_header),
		new ImageResource("dialog_frame", android.R.drawable.dialog_frame),
//			new ImageResource("dialog_holo_dark_frame", android.R.drawable.dialog_holo_dark_frame),
//			new ImageResource("dialog_holo_light_frame", android.R.drawable.dialog_holo_light_frame),
		new ImageResource("divider_horizontal_bright", android.R.drawable.divider_horizontal_bright),
		new ImageResource("divider_horizontal_dark", android.R.drawable.divider_horizontal_dark),
		new ImageResource("divider_horizontal_dim_dark", android.R.drawable.divider_horizontal_dim_dark),
		new ImageResource("divider_horizontal_textfield", android.R.drawable.divider_horizontal_textfield),
		new ImageResource("edit_text", android.R.drawable.edit_text),
		new ImageResource("editbox_background", android.R.drawable.editbox_background),
		new ImageResource("editbox_background_normal", android.R.drawable.editbox_background_normal),
		new ImageResource("editbox_dropdown_dark_frame", android.R.drawable.editbox_dropdown_dark_frame),
		new ImageResource("editbox_dropdown_light_frame", android.R.drawable.editbox_dropdown_light_frame),
		new ImageResource("gallery_thumb", android.R.drawable.gallery_thumb),
		new ImageResource("ic_btn_speak_now", android.R.drawable.ic_btn_speak_now),
		new ImageResource("ic_delete", android.R.drawable.ic_delete),
		new ImageResource("ic_dialog_alert", android.R.drawable.ic_dialog_alert),
		new ImageResource("ic_dialog_dialer", android.R.drawable.ic_dialog_dialer),
		new ImageResource("ic_dialog_email", android.R.drawable.ic_dialog_email),
		new ImageResource("ic_dialog_info", android.R.drawable.ic_dialog_info),
		new ImageResource("ic_dialog_map", android.R.drawable.ic_dialog_map),
		new ImageResource("ic_input_add", android.R.drawable.ic_input_add),
		new ImageResource("ic_input_delete", android.R.drawable.ic_input_delete),
		new ImageResource("ic_input_get", android.R.drawable.ic_input_get),
		new ImageResource("ic_lock_idle_alarm", android.R.drawable.ic_lock_idle_alarm),
		new ImageResource("ic_lock_idle_charging", android.R.drawable.ic_lock_idle_charging),
		new ImageResource("ic_lock_idle_lock", android.R.drawable.ic_lock_idle_lock),
		new ImageResource("ic_lock_idle_low_battery", android.R.drawable.ic_lock_idle_low_battery),
		new ImageResource("ic_lock_lock", android.R.drawable.ic_lock_lock),
		new ImageResource("ic_lock_power_off", android.R.drawable.ic_lock_power_off),
		new ImageResource("ic_lock_silent_mode", android.R.drawable.ic_lock_silent_mode),
		new ImageResource("ic_lock_silent_mode_off", android.R.drawable.ic_lock_silent_mode_off),
		new ImageResource("ic_media_ff", android.R.drawable.ic_media_ff),
		new ImageResource("ic_media_next", android.R.drawable.ic_media_next),
		new ImageResource("ic_media_pause", android.R.drawable.ic_media_pause),
		new ImageResource("ic_media_play", android.R.drawable.ic_media_play),
		new ImageResource("ic_media_previous", android.R.drawable.ic_media_previous),
		new ImageResource("ic_media_rew", android.R.drawable.ic_media_rew),
		new ImageResource("ic_menu_add", android.R.drawable.ic_menu_add),
		new ImageResource("ic_menu_agenda", android.R.drawable.ic_menu_agenda),
		new ImageResource("ic_menu_always_landscape_portrait", android.R.drawable.ic_menu_always_landscape_portrait),
		new ImageResource("ic_menu_call", android.R.drawable.ic_menu_call),
		new ImageResource("ic_menu_camera", android.R.drawable.ic_menu_camera),
		new ImageResource("ic_menu_close_clear_cancel", android.R.drawable.ic_menu_close_clear_cancel),
		new ImageResource("ic_menu_compass", android.R.drawable.ic_menu_compass),
		new ImageResource("ic_menu_crop", android.R.drawable.ic_menu_crop),
		new ImageResource("ic_menu_day", android.R.drawable.ic_menu_day),
		new ImageResource("ic_menu_delete", android.R.drawable.ic_menu_delete),
		new ImageResource("ic_menu_directions", android.R.drawable.ic_menu_directions),
		new ImageResource("ic_menu_edit", android.R.drawable.ic_menu_edit),
		new ImageResource("ic_menu_gallery", android.R.drawable.ic_menu_gallery),
		new ImageResource("ic_menu_help", android.R.drawable.ic_menu_help),
		new ImageResource("ic_menu_info_details", android.R.drawable.ic_menu_info_details),
		new ImageResource("ic_menu_manage", android.R.drawable.ic_menu_manage),
		new ImageResource("ic_menu_mapmode", android.R.drawable.ic_menu_mapmode),
		new ImageResource("ic_menu_month", android.R.drawable.ic_menu_month),
		new ImageResource("ic_menu_more", android.R.drawable.ic_menu_more),
		new ImageResource("ic_menu_my_calendar", android.R.drawable.ic_menu_my_calendar),
		new ImageResource("ic_menu_mylocation", android.R.drawable.ic_menu_mylocation),
		new ImageResource("ic_menu_myplaces", android.R.drawable.ic_menu_myplaces),
		new ImageResource("ic_menu_preferences", android.R.drawable.ic_menu_preferences),
		new ImageResource("ic_menu_recent_history", android.R.drawable.ic_menu_recent_history),
		new ImageResource("ic_menu_report_image", android.R.drawable.ic_menu_report_image),
		new ImageResource("ic_menu_revert", android.R.drawable.ic_menu_revert),
		new ImageResource("ic_menu_rotate", android.R.drawable.ic_menu_rotate),
		new ImageResource("ic_menu_save", android.R.drawable.ic_menu_save),
		new ImageResource("ic_menu_search", android.R.drawable.ic_menu_search),
		new ImageResource("ic_menu_send", android.R.drawable.ic_menu_send),
		new ImageResource("ic_menu_set_as", android.R.drawable.ic_menu_set_as),
		new ImageResource("ic_menu_share", android.R.drawable.ic_menu_share),
		new ImageResource("ic_menu_slideshow", android.R.drawable.ic_menu_slideshow),
		new ImageResource("ic_menu_sort_alphabetically", android.R.drawable.ic_menu_sort_alphabetically),
		new ImageResource("ic_menu_sort_by_size", android.R.drawable.ic_menu_sort_by_size),
		new ImageResource("ic_menu_today", android.R.drawable.ic_menu_today),
		new ImageResource("ic_menu_upload", android.R.drawable.ic_menu_upload),
		new ImageResource("ic_menu_upload_you_tube", android.R.drawable.ic_menu_upload_you_tube),
		new ImageResource("ic_menu_view", android.R.drawable.ic_menu_view),
		new ImageResource("ic_menu_week", android.R.drawable.ic_menu_week),
		new ImageResource("ic_menu_zoom", android.R.drawable.ic_menu_zoom),
		new ImageResource("ic_notification_clear_all", android.R.drawable.ic_notification_clear_all),
		new ImageResource("ic_notification_overlay", android.R.drawable.ic_notification_overlay),
		new ImageResource("ic_partial_secure", android.R.drawable.ic_partial_secure),
		new ImageResource("ic_popup_disk_full", android.R.drawable.ic_popup_disk_full),
		new ImageResource("ic_popup_reminder", android.R.drawable.ic_popup_reminder),
		new ImageResource("ic_popup_sync", android.R.drawable.ic_popup_sync),
		new ImageResource("ic_search_category_default", android.R.drawable.ic_search_category_default),
		new ImageResource("ic_secure", android.R.drawable.ic_secure),
		new ImageResource("list_selector_background", android.R.drawable.list_selector_background),
		new ImageResource("menu_frame", android.R.drawable.menu_frame),
		new ImageResource("menu_full_frame", android.R.drawable.menu_full_frame),
		new ImageResource("menuitem_background", android.R.drawable.menuitem_background),
		new ImageResource("picture_frame", android.R.drawable.picture_frame),
//			new ImageResource("presence_audio_away", android.R.drawable.presence_audio_away),
//			new ImageResource("presence_audio_busy", android.R.drawable.presence_audio_busy),
//			new ImageResource("presence_audio_online", android.R.drawable.presence_audio_online),
		new ImageResource("presence_away", android.R.drawable.presence_away),
		new ImageResource("presence_busy", android.R.drawable.presence_busy),
		new ImageResource("presence_invisible", android.R.drawable.presence_invisible),
		new ImageResource("presence_offline", android.R.drawable.presence_offline),
		new ImageResource("presence_online", android.R.drawable.presence_online),
//			new ImageResource("presence_video_away", android.R.drawable.presence_video_away),
//			new ImageResource("presence_video_busy", android.R.drawable.presence_video_busy),
//			new ImageResource("presence_video_online", android.R.drawable.presence_video_online),
		new ImageResource("progress_horizontal", android.R.drawable.progress_horizontal),
		new ImageResource("progress_indeterminate_horizontal", android.R.drawable.progress_indeterminate_horizontal),
		new ImageResource("radiobutton_off_background", android.R.drawable.radiobutton_off_background),
		new ImageResource("radiobutton_on_background", android.R.drawable.radiobutton_on_background),
		new ImageResource("screen_background_dark", android.R.drawable.screen_background_dark),
//			new ImageResource("screen_background_dark_transparent", android.R.drawable.screen_background_dark_transparent),
		new ImageResource("screen_background_light", android.R.drawable.screen_background_light),
//			new ImageResource("screen_background_light_transparent", android.R.drawable.screen_background_light_transparent),
		new ImageResource("spinner_background", android.R.drawable.spinner_background),
		new ImageResource("spinner_dropdown_background", android.R.drawable.spinner_dropdown_background),
		new ImageResource("star_big_off", android.R.drawable.star_big_off),
		new ImageResource("star_big_on", android.R.drawable.star_big_on),
		new ImageResource("star_off", android.R.drawable.star_off),
		new ImageResource("star_on", android.R.drawable.star_on),
		new ImageResource("stat_notify_call_mute", android.R.drawable.stat_notify_call_mute),
		new ImageResource("stat_notify_chat", android.R.drawable.stat_notify_chat),
		new ImageResource("stat_notify_error", android.R.drawable.stat_notify_error),
		new ImageResource("stat_notify_missed_call", android.R.drawable.stat_notify_missed_call),
		new ImageResource("stat_notify_more", android.R.drawable.stat_notify_more),
		new ImageResource("stat_notify_sdcard", android.R.drawable.stat_notify_sdcard),
//			new ImageResource("stat_notify_sdcard_prepare", android.R.drawable.stat_notify_sdcard_prepare),
		new ImageResource("stat_notify_sdcard_usb", android.R.drawable.stat_notify_sdcard_usb),
		new ImageResource("stat_notify_sync", android.R.drawable.stat_notify_sync),
		new ImageResource("stat_notify_sync_noanim", android.R.drawable.stat_notify_sync_noanim),
		new ImageResource("stat_notify_voicemail", android.R.drawable.stat_notify_voicemail),
		new ImageResource("stat_sys_data_bluetooth", android.R.drawable.stat_sys_data_bluetooth),
		new ImageResource("stat_sys_download", android.R.drawable.stat_sys_download),
		new ImageResource("stat_sys_download_done", android.R.drawable.stat_sys_download_done),
		new ImageResource("stat_sys_headset", android.R.drawable.stat_sys_headset),
		new ImageResource("stat_sys_phone_call", android.R.drawable.stat_sys_phone_call),
		new ImageResource("stat_sys_phone_call_forward", android.R.drawable.stat_sys_phone_call_forward),
		new ImageResource("stat_sys_phone_call_on_hold", android.R.drawable.stat_sys_phone_call_on_hold),
		new ImageResource("stat_sys_speakerphone", android.R.drawable.stat_sys_speakerphone),
		new ImageResource("stat_sys_upload", android.R.drawable.stat_sys_upload),
		new ImageResource("stat_sys_upload_done", android.R.drawable.stat_sys_upload_done),
//			new ImageResource("stat_sys_vp_phone_call", android.R.drawable.stat_sys_vp_phone_call),
//			new ImageResource("stat_sys_vp_phone_call_on_hold", android.R.drawable.stat_sys_vp_phone_call_on_hold),
		new ImageResource("stat_sys_warning", android.R.drawable.stat_sys_warning),
		new ImageResource("status_bar_item_app_background", android.R.drawable.status_bar_item_app_background),
		new ImageResource("status_bar_item_background", android.R.drawable.status_bar_item_background),
		new ImageResource("sym_action_call", android.R.drawable.sym_action_call),
		new ImageResource("sym_action_chat", android.R.drawable.sym_action_chat),
		new ImageResource("sym_action_email", android.R.drawable.sym_action_email),
		new ImageResource("sym_call_incoming", android.R.drawable.sym_call_incoming),
		new ImageResource("sym_call_missed", android.R.drawable.sym_call_missed),
		new ImageResource("sym_call_outgoing", android.R.drawable.sym_call_outgoing),
		new ImageResource("sym_contact_card", android.R.drawable.sym_contact_card),
		new ImageResource("sym_def_app_icon", android.R.drawable.sym_def_app_icon),
		new ImageResource("title_bar", android.R.drawable.title_bar),
		new ImageResource("title_bar_tall", android.R.drawable.title_bar_tall),
		new ImageResource("toast_frame", android.R.drawable.toast_frame),
		new ImageResource("zoom_plate", android.R.drawable.zoom_plate),
	};
	
	/**
	 * 表示するイメージの名前とIDを持つクラス
	 */
	private class ImageResource {
		private final String name;
		private final int id;
		public ImageResource(String name, int id) {
			this.name = name;
			this.id = id;
		}
	}
}

row_03.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <ImageView
        android:id="@+id/iconImageView"
        android:layout_width="25sp"
        android:layout_height="25sp"
        android:layout_marginRight="5sp"
        />
    <TextView
        android:id="@+id/textImageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_weight="1" />
</LinearLayout>