首页>代码>百度地图android sdk v3.0.0实例demo>/BaiduMapsApiDemo/src/baidumapsdk/demo/BMapApiDemoMain.java
package baidumapsdk.demo;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.VersionInfo;

public class BMapApiDemoMain extends Activity {
	private static final String LTAG = BMapApiDemoMain.class.getSimpleName();

	/**
	 * 构造广播监听类,监听 SDK key 验证以及网络异常广播
	 */
	public class SDKReceiver extends BroadcastReceiver {
		public void onReceive(Context context, Intent intent) {
			String s = intent.getAction();
			Log.d(LTAG, "action: " + s);
			TextView text = (TextView) findViewById(R.id.text_Info);
			text.setTextColor(Color.RED);
			if (s.equals(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR)) {
				text.setText("key 验证出错! 请在 AndroidManifest.xml 文件中检查 key 设置");
			} else if (s.equals(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR)) {
				text.setText("网络出错");
			}
		}
	}

	private SDKReceiver mReceiver;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		TextView text = (TextView) findViewById(R.id.text_Info);
		text.setTextColor(Color.YELLOW);
		text.setText("欢迎使用百度地图Android SDK v" + VersionInfo.getApiVersion());
		ListView mListView = (ListView) findViewById(R.id.listView);
		// 添加ListItem,设置事件响应
		mListView.setAdapter(new DemoListAdapter());
		mListView.setOnItemClickListener(new OnItemClickListener() {
			public void onItemClick(AdapterView<?> arg0, View v, int index,
					long arg3) {
				onListItemClick(index);
			}
		});

		// 注册 SDK 广播监听者
		IntentFilter iFilter = new IntentFilter();
		iFilter.addAction(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR);
		iFilter.addAction(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR);
		mReceiver = new SDKReceiver();
		registerReceiver(mReceiver, iFilter);
	}

	void onListItemClick(int index) {
		Intent intent = null;
		intent = new Intent(BMapApiDemoMain.this, demos[index].demoClass);
		this.startActivity(intent);
	}

	private static final DemoInfo[] demos = {
			new DemoInfo(R.string.demo_title_basemap,
					R.string.demo_desc_basemap, BaseMapDemo.class),
			new DemoInfo(R.string.demo_title_map_fragment,
					R.string.demo_desc_map_fragment, MapFragmentDemo.class),
			new DemoInfo(R.string.demo_title_multimap,
					R.string.demo_desc_multimap, MultiMapViewDemo.class),
			new DemoInfo(R.string.demo_title_layers, R.string.demo_desc_layers,
					LayersDemo.class),
			new DemoInfo(R.string.demo_title_control,
					R.string.demo_desc_control, MapControlDemo.class),
			new DemoInfo(R.string.demo_title_ui, R.string.demo_desc_ui,
					UISettingDemo.class),
			new DemoInfo(R.string.demo_title_location,
					R.string.demo_desc_location, LocationDemo.class),
			new DemoInfo(R.string.demo_title_geometry,
					R.string.demo_desc_geometry, GeometryDemo.class),
			new DemoInfo(R.string.demo_title_overlay,
					R.string.demo_desc_overlay, OverlayDemo.class),
			new DemoInfo(R.string.demo_title_offline,
					R.string.demo_desc_offline, OfflineDemo.class),
			new DemoInfo(R.string.demo_title_poi, R.string.demo_desc_poi,
					PoiSearchDemo.class),
			new DemoInfo(R.string.demo_title_geocode,
					R.string.demo_desc_geocode, GeoCoderDemo.class),
			new DemoInfo(R.string.demo_title_route, R.string.demo_desc_route,
					RoutePlanDemo.class),
			new DemoInfo(R.string.demo_title_bus, R.string.demo_desc_bus,
					BusLineSearchDemo.class),
			new DemoInfo(R.string.demo_title_share, R.string.demo_desc_share,
					ShareDemo.class),
			new DemoInfo(R.string.demo_title_cloud, R.string.demo_desc_cloud,
					CloudSearchDemo.class),
			new DemoInfo(R.string.demo_title_navi, R.string.demo_desc_navi,
					NaviDemo.class)
	};

	@Override
	protected void onResume() {
		super.onResume();
	}

	@Override
	protected void onDestroy() {
		super.onDestroy();
		// 取消监听 SDK 广播
		unregisterReceiver(mReceiver);
	}

	private class DemoListAdapter extends BaseAdapter {
		public DemoListAdapter() {
			super();
		}

		@Override
		public View getView(int index, View convertView, ViewGroup parent) {
			convertView = View.inflate(BMapApiDemoMain.this,
					R.layout.demo_info_item, null);
			TextView title = (TextView) convertView.findViewById(R.id.title);
			TextView desc = (TextView) convertView.findViewById(R.id.desc);
			title.setText(demos[index].title);
			desc.setText(demos[index].desc);
			return convertView;
		}

		@Override
		public int getCount() {
			return demos.length;
		}

		@Override
		public Object getItem(int index) {
			return demos[index];
		}

		@Override
		public long getItemId(int id) {
			return id;
		}
	}

	private static class DemoInfo {
		private final int title;
		private final int desc;
		private final Class<? extends android.app.Activity> demoClass;

		public DemoInfo(int title, int desc,
				Class<? extends android.app.Activity> demoClass) {
			this.title = title;
			this.desc = desc;
			this.demoClass = demoClass;
		}
	}
}
最近下载更多
qwe2453968430  LV1 2022年5月18日
GZW012345  LV8 2022年4月8日
3089559272  LV11 2021年12月26日
wyx065747  LV67 2021年7月1日
Little already  LV3 2021年6月22日
yoodo8816  LV2 2021年1月6日
haoqiong  LV1 2020年11月27日
木木沐  LV7 2020年11月19日
862960632  LV14 2020年11月3日
sjk1635927903  LV8 2020年6月25日
最近浏览更多
lg208040 1月6日
暂无贡献等级
tkggddm  LV3 1月5日
小安同学  LV7 2023年11月2日
孙煜皓 2023年6月28日
暂无贡献等级
111112222333312131  LV4 2023年5月30日
qazfxh  LV1 2023年4月4日
我喔沃窝握卧  LV1 2022年11月26日
花无拆  LV2 2022年6月7日
361424231  LV4 2022年5月27日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友