百度地图的一个项目,自定义适配器的一个示例
2016-04-20 11:32
489 查看
百度地图的一个项目,自定义适配器的一个示例
public class DituActivity extends Activity { ListView listView; Adapter1 adapter1; Context ct=this; List<A> aList=new ArrayList<>(); //每一个经纬度 LatLng llTAMSquare= new LatLng(39.915125,116.403963);//天安门广场 LatLng llCompany= new LatLng(39.832889,116.309002);//RT LatLng llRailway= new LatLng(39.91027, 116.433604);//北京站 LatLng llMuseum= new LatLng(39.912484, 116.349091);//首都博物馆 LatLng llZoo= new LatLng(39.94723, 116.341617);//北京动物园 LatLng llDZMStation= new LatLng(39.947506, 116.440071);//东直门枢纽站 LatLng llGDUniversity= new LatLng(40.221614, 116.659119);//GD LatLng llNYAirport = new LatLng(39.797384, 116.403564);//北京南苑机场 int layout=R.layout.ditu_layout;//换布局文件时在这里改即可 int item_layout=R.layout.item; int listview_id=R.id.listView; int tv_id=R.id.tv_item; int iv_id=R.id.item_image; MapView mMapView; BaiduMap mBaiduMap; LinearLayout linearLayout;//隐藏列表用 Button button_ditu_list;//隐藏列表用 A aTAMSquare;A allCompany;A aRailway;A aMuseum; A aZoo;A aDZMStation;A aGDUniversity;A aNYAirport;//几个要用的位置 class A{ String string; int Id; LatLng latLng; A(LatLng latLng1, int id,String string) { this.string = string; Id = id; latLng=latLng1; } String getString(){return string;} int getId(){return Id;} } class Adapter1 extends ArrayAdapter<A>{ int item_layout; Adapter1(Context context, int item_layout, List objects) { super(context, item_layout, objects); this.item_layout =item_layout; } class ViewHolder{ ImageView imageView; TextView textView; } @Override public View getView(int position, View convertView, ViewGroup parent) { A a= getItem(position); ViewHolder vh; if(convertView==null){ LayoutInflater li=LayoutInflater.from(getContext()); convertView=li.inflate(item_layout, null); vh=new ViewHolder(); vh.imageView=(ImageView)convertView.findViewById(iv_id); vh.textView=(TextView)convertView.findViewById(tv_id); convertView.setTag(vh); }else { vh= (ViewHolder) convertView.getTag(); } vh.textView.setText(a.getString()); vh.imageView.setImageResource(a.getId()); return convertView; } } private class sOICL implements android.widget.AdapterView.OnItemClickListener { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { A a=aList.get(position); ToCenter(a.latLng, 14); } } private class sOMCL implements BaiduMap.OnMarkerClickListener { @Override public boolean onMarkerClick(Marker marker) { String string=(String)marker.getExtraInfo().get("key"); ShowDialog(string, marker.getPosition()); return true; } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initList(); initView(); initAdapter(); listView.setOnItemClickListener(new sOICL());//到中间 list_hide();//隐藏列表 for (A a:aList){//添加每一个位置 ShowOverlay(a.latLng,a.Id,a.string); } mBaiduMap.setOnMarkerClickListener(new sOMCL()); } void ShowOverlay(LatLng llA, int imageId,String loc){ BitmapDescriptor bdA = BitmapDescriptorFactory.fromResource(imageId); OverlayOptions optionA = new MarkerOptions().position(llA).icon(bdA); Marker marker= (Marker) mBaiduMap.addOverlay(optionA); Bundle bundle=new Bundle(); bundle.putSerializable("key", loc); marker.setExtraInfo(bundle); } void list_hide(){ //列表隐藏和显示 linearLayout=(LinearLayout)findViewById(R.id.layout_ditu_list); button_ditu_list=(Button)findViewById(R.id.button_ditu_list); button_ditu_list.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (linearLayout.getVisibility() == View.VISIBLE) { linearLayout.setVisibility(View.GONE); button_ditu_list.setText("显示列表"); } else { linearLayout.setVisibility(View.VISIBLE); button_ditu_list.setText("隐藏列表"); } }//onClick }); } void initView(){ SDKInitializer.initialize(getApplicationContext()); setContentView(layout); listView=(ListView)findViewById(listview_id); mMapView=(MapView)findViewById(R.id.bmapView); mBaiduMap = mMapView.getMap(); } void initList(){ aTAMSquare=new A(llTAMSquare, R.drawable.icon_marka,"天安门广场"); allCompany=new A(llCompany, R.drawable.icon_markb,"RT"); aRailway=new A(llRailway, R.drawable.icon_markc,"北京站"); aMuseum=new A(llMuseum, R.drawable.icon_markd,"首都博物馆"); aZoo=new A(llZoo, R.drawable.icon_marke,"北京动物园"); aDZMStation=new A(llDZMStation, R.drawable.icon_markf,"东直门枢纽站"); aGDUniversity=new A(llGDUniversity, R.drawable.icon_markg,"GD"); aNYAirport=new A(llNYAirport, R.drawable.icon_markh,"南苑机场"); aList.add(aTAMSquare); aList.add(allCompany); aList.add(aRailway); aList.add(aMuseum); aList.add(aZoo); aList.add(aDZMStation); aList.add(aGDUniversity); aList.add(aNYAirport); } void initAdapter(){ adapter1=new Adapter1(ct,item_layout,aList); listView.setAdapter(adapter1); } @Override protected void onDestroy() { super.onDestroy(); mMapView.onDestroy(); } @Override protected void onResume() { super.onResume(); mMapView.onResume(); } @Override protected void onPause() { super.onPause(); mMapView.onPause(); } void ToCenter(LatLng llA,int zoom){ MapStatus mMapStatus = new MapStatus.Builder().target(llA).zoom(zoom).build(); MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mMapStatus); mBaiduMap.setMapStatus(mMapStatusUpdate); } //对话框 void ShowDialog(String loc,LatLng latLng){ AlertDialog.Builder dialog=new AlertDialog.Builder(ct); //dialog.setTitle("这是标题"); dialog.setMessage("location:"+loc+"\n"+latLng.toString()); dialog.setCancelable(true); dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } });dialog.show(); } }
相关文章推荐
- Android Studio 、eclipse配置模拟器AVD存放路径默认在c盘,解决c盘空间不够问题
- 安卓系统短信源码依赖库、可运行的源码
- 【转载】Maven常见异常及解决方法
- 用代码绘制简单的图形
- 设计模式——三个工厂模式(简单工厂,工厂方法,抽象工厂)
- jQuery Validate插件使用
- 【版本控制】git学习笔记(一)
- perl post 带上请求头
- perl post 带上请求头
- 如何判断Fragment是否对用户可见
- MongoDB的设计特点简介
- 关于java程序员框架个人拙见
- <html>标签
- linux开启user_cmd功能记录用户所有操作指令到log message中
- 我常常浏览的博客和网站
- JAVA字符串格式化-String.format()的使用
- Ubuntu不能上网问题解决方法
- 记录一次被入侵5900端口经历
- 通过变量名获取变量值
- 导出websphere内存镜像