package com.amapv2.cn.apis; import android.app.ListActivity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ListAdapter; import android.widget.ListView; import com.amapv2.cn.apis.poisearch.PoisearchDemoActivity; import com.amapv2.cn.apis.route.RouteDemoActivity; import com.amapv2.cn.apis.view.FeatureView; import com.example.lokal.R; /** * AMapV2地图demo总汇 */ public final class MainActivity extends ListActivity { private static class DemoDetails { private final int titleId; private final int descriptionId; private final Class<? extends android.app.Activity> activityClass; public DemoDetails(int titleId, int descriptionId, Class<? extends android.app.Activity> activityClass) { super(); this.titleId = titleId; this.descriptionId = descriptionId; this.activityClass = activityClass; } } private static class CustomArrayAdapter extends ArrayAdapter<DemoDetails> { public CustomArrayAdapter(Context context, DemoDetails[] demos) { super(context, R.layout.feature, R.id.title, demos); } @Override public View getView(int position, View convertView, ViewGroup parent) { FeatureView featureView; if (convertView instanceof FeatureView) { featureView = (FeatureView) convertView; } else { featureView = new FeatureView(getContext()); } DemoDetails demo = getItem(position); featureView.setTitleId(demo.titleId); featureView.setDescriptionId(demo.descriptionId); return featureView; } } private static final DemoDetails[] demos = { new DemoDetails(R.string.basic_map, R.string.basic_description, BasicMapActivity.class), new DemoDetails(R.string.camera_demo, R.string.camera_description, CameraDemoActivity.class), new DemoDetails(R.string.events_demo, R.string.events_description, EventsDemoActivity.class), new DemoDetails(R.string.layers_demo, R.string.layers_description, LayersDemoActivity.class), new DemoDetails(R.string.locationsource_demo, R.string.locationsource_description, LocationSourceDemoActivity.class), new DemoDetails(R.string.locationmanagerproxy_demo, R.string.locationmanagerproxy_description, LocManagerProxyDemoActivity.class), new DemoDetails(R.string.uisettings_demo, R.string.uisettings_description, UiSettingsDemoActivity.class), new DemoDetails(R.string.marker_demo, R.string.marker_description, MarkerDemoActivity.class), new DemoDetails(R.string.polygon_demo, R.string.polygon_description, PolygonDemoActivity.class), new DemoDetails(R.string.polyline_demo, R.string.polyline_description, PolylineDemoActivity.class), new DemoDetails(R.string.multi_map_demo, R.string.multi_map_description, MultiMapDemoActivity.class), new DemoDetails(R.string.programmatic_demo, R.string.programmatic_description, ProgrammaticDemoActivity.class), new DemoDetails(R.string.route_demo, R.string.reoute_description, RouteDemoActivity.class), new DemoDetails(R.string.geocoder_demo, R.string.geocoder_description, GeocoderDemoActivity.class), new DemoDetails(R.string.poisearch_demo, R.string.poisearch_description, PoisearchDemoActivity.class) }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ListAdapter adapter = new CustomArrayAdapter(this, demos); setListAdapter(adapter); } @Override protected void onListItemClick(ListView l, View v, int position, long id) { DemoDetails demo = (DemoDetails) getListAdapter().getItem(position); startActivity(new Intent(this, demo.activityClass)); } }