zoukankan      html  css  js  c++  java
  • 高德Demo,网上找了很多资料都不适合,自己研究出一个Demo,非常适合入门

    好炫的高德:

    Mainfest清单:需要key

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.xmb.test_1"
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk
            android:minSdkVersion="9"
            android:targetSdkVersion="15" />
    
        <application
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <meta-data
                android:name="com.amap.api.v2.apikey"
                android:value="d707ab913a39a7801a58807f022e6439" />
            <activity
                android:name=".Main2"
                android:label="@string/title_activity_main" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            
            <activity android:name=".TakePictures"
                       android:screenOrientation="landscape">
                </activity>
        </application>
     <uses-permission 
    android:name="android.permission.ACCESS_MOCK_LOCATION"></uses-permission>   
    <uses-permission 
    android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
    <uses-permission 
    android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> 
    <uses-permission  
    android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
    <uses-permission  
    android:name="android.permission.INTERNET"></uses-permission>
    <uses-permission  
    android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
    <uses-permission  
    android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
    <uses-permission  
    android:name="android.permission.READ_PHONE_STATE"></uses-permission>
    <uses-permission  
    android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
    <uses-permission  
    android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
    <uses-permission android:name="android.permission.CAMERA"/>
    <!-- 在SDCard中创建与删除文件权限 -->
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
    <!-- 往SDCard写入数据权限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    
    </manifest>

    main2.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
     <fragment
                android:id="@+id/map1"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginRight="5dp"
                android:layout_weight="1"
                class="com.amap.api.maps.SupportMapFragment" />"
    </LinearLayout>

    Main2.java

      1 package com.xmb.test_1;
      2 
      3 
      4 import com.amap.api.location.AMapLocation;
      5 import com.amap.api.location.AMapLocationListener;
      6 import com.amap.api.location.LocationManagerProxy;
      7 import com.amap.api.location.LocationProviderProxy;
      8 import com.amap.api.maps.AMap;
      9 import com.amap.api.maps.AMap.OnMapClickListener;
     10 import com.amap.api.maps.LocationSource.OnLocationChangedListener;
     11 import com.amap.api.maps.SupportMapFragment;
     12 import com.amap.api.maps.model.BitmapDescriptorFactory;
     13 import com.amap.api.maps.model.LatLng;
     14 import com.amap.api.maps.model.MarkerOptions;
     15 import com.amap.api.search.core.AMapException;
     16 import com.amap.api.search.core.LatLonPoint;
     17 import com.amap.api.search.route.Route;
     18 import com.amap.api.search.route.Route.FromAndTo;
     19 
     20 import android.annotation.SuppressLint;
     21 import android.app.Activity;
     22 import android.location.Criteria;
     23 import android.location.Location;
     24 import android.os.Bundle;
     25 import android.support.v4.app.FragmentActivity;
     26 import android.util.Log;
     27 import android.view.View;
     28 
     29 public class Main2 extends FragmentActivity implements AMapLocationListener{
     30     private AMap mMapView;
     31     private OnLocationChangedListener mListener;
     32     private LocationManagerProxy locationManager = null; //声明LocationManagerProxy
     33     protected void onCreate(Bundle savedInstanceState) {
     34         super.onCreate(savedInstanceState);
     35         setContentView(R.layout.main2);
     36         locationManager = LocationManagerProxy.getInstance(this); //初始化LocationManagerProxy   
     37         mMapView= ((SupportMapFragment) getSupportFragmentManager()
     38                 .findFragmentById(R.id.map1)).getMap();
     39         //mMapView.setMapType(AMap. MAP_TYPE_SATELLITE); //卫星界面
     40         //标记Marker
     41         /*LatLng marker1 = new LatLng(23.173218,113.413142);
     42         mMapView.addMarker(new MarkerOptions().position(marker1).title("Marker1 ")
     43                         .icon(BitmapDescriptorFactory
     44         .fromResource(R.drawable.car_green)).snippet("Marker2")
     45                         .draggable(true));*/
     46         //监听动作
     47         /*mMapView.setOnMapClickListener(new OnMapClickListener(){
     48 
     49             @Override
     50             public void onMapClick(LatLng arg0) {
     51                 // TODO Auto-generated method stub
     52                 mMapView.addMarker(new MarkerOptions().position(arg0).title("Marker1 ")
     53                         .icon(BitmapDescriptorFactory
     54         .fromResource(R.drawable.car_green)).snippet("Marker2")
     55                         .draggable(true));
     56             }
     57             
     58         });*/
     59         //enableMyLocation();
     60         //路线规划(驾车)
     61         LatLonPoint startpoint=new LatLonPoint(23.173218,113.413142);
     62         LatLonPoint endtpoint=new LatLonPoint(23.072222,113.402222);
     63         FromAndTo fromAndTo = new FromAndTo(startpoint, endtpoint); 
     64         //routeResult = Route.calculateRoute(Main2.this, fromAndTo,Route.WalkDefault);
     65         Route route = null;
     66         try {
     67             route = Route.calculateRoute(Main2.this, fromAndTo,Route.DrivingDefault).get(0);
     68         } catch (AMapException e) {
     69             // TODO Auto-generated catch block
     70             e.printStackTrace();
     71         }  //这里只取出查询路径的第一条
     72          if (route != null) {
     73             RouteOverlay routeOverlay = new RouteOverlay (Main2.this,mMapView, route);
     74             routeOverlay.removeFormMap();
     75             routeOverlay.addMarkerLine();
     76             }
     77 
     78 
     79     }
     80     
     81     //初始化一个Criteria 对象,设置相关参数,此对象自动匹配最适合的定位类型。调用enableMyLocation函数启动定位模块,disableMyLocation 函数关闭定位模块。   
     82       
     83     //根据Criteria 对象获取提供位置信息的provider,并启动定位模块   
     84       
     85         @SuppressLint("ParserError")
     86         public boolean enableMyLocation() {  
     87       
     88        
     89       
     90                boolean result = true;  
     91       
     92                Criteria cri = new Criteria();   
     93       
     94                cri.setAccuracy(Criteria.ACCURACY_COARSE);  
     95       
     96                cri.setAltitudeRequired(false);  
     97       
     98                cri.setBearingRequired(false);  
     99       
    100                cri.setCostAllowed(false);  
    101       
    102                String bestProvider = locationManager.getBestProvider(cri, true);  
    103       
    104                locationManager.requestLocationUpdates(bestProvider, 10000, 10,  
    105       
    106                              this);  
    107                Log.i("out", "1");
    108                return result;  
    109       
    110         }  
    111       
    112     // 关闭定位模块   
    113       
    114         public void disableMyLocation() {  
    115       
    116                locationManager.removeUpdates(this);  
    117                locationManager =null;  
    118       
    119         }  
    120 
    121       //LocationListener 的监听接口   
    122         
    123         @Override  
    124       
    125         public void onLocationChanged(Location location) {  
    126       
    127                // TODO Auto-generated method stub   
    128       
    129                if (location != null) {  
    130       
    131                       Double geoLat = location.getLatitude();  
    132       
    133                       Double geoLng = location.getLongitude();  
    134       
    135                       String str =("定位成功1:(" + geoLng + "," + geoLat + ")");  
    136       
    137                      Log.i("out","str1="+str);
    138       
    139                }else{
    140                    Log.i("out", "null");
    141                }
    142       
    143         }
    144         @Override
    145         public void onProviderDisabled(String provider) {
    146             // TODO Auto-generated method stub
    147             
    148         }
    149 
    150         @Override
    151         public void onProviderEnabled(String provider) {
    152             // TODO Auto-generated method stub
    153             enableMyLocation();
    154         }
    155 
    156         @Override
    157         public void onStatusChanged(String provider, int status, Bundle extras) {
    158             // TODO Auto-generated method stub
    159             
    160         }
    161 
    162         @Override
    163         public void onLocationChanged(AMapLocation arg0) {
    164             // TODO Auto-generated method stub
    165             if (arg0 != null) {  
    166                   
    167                 Double geoLat = arg0.getLatitude();  
    168 
    169                 Double geoLng = arg0.getLongitude();  
    170                 Bundle locBundle = arg0.getExtras();
    171                 if (locBundle != null) {
    172                      // 城市编码及位置描述
    173                     String cityCode = locBundle.getString("citycode");
    174                     String desc = locBundle.getString("desc");
    175                 }
    176 
    177                 String str =("定位成功2:(" + geoLng + "," + geoLat + ")");  
    178 
    179                Log.i("out","str2="+str+"citycode="+locBundle.getString("citycode")+",addr="+locBundle.getString("desc"));
    180 
    181          }else{
    182              Log.i("out", "null");
    183          }
    184         }
    185 
    186 }

    工具类,画图:

    RouteOverlay.java

    package com.xmb.test_1;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Map;
    
    import android.content.Context;
    import android.graphics.Color;
    import android.text.Spanned;
    import android.view.Gravity;
    import android.view.View;
    import android.widget.LinearLayout;
    import android.widget.TextView;
    
    import com.amap.api.maps.AMap;
    import com.amap.api.maps.AMap.InfoWindowAdapter;
    import com.amap.api.maps.AMap.OnMarkerClickListener;
    import com.amap.api.maps.CameraUpdateFactory;
    import com.amap.api.maps.model.BitmapDescriptor;
    import com.amap.api.maps.model.BitmapDescriptorFactory;
    import com.amap.api.maps.model.LatLng;
    import com.amap.api.maps.model.Marker;
    import com.amap.api.maps.model.MarkerOptions;
    import com.amap.api.maps.model.PolylineOptions;
    import com.amap.api.search.core.LatLonPoint;
    import com.amap.api.search.route.BusSegment;
    import com.amap.api.search.route.DriveSegment;
    import com.amap.api.search.route.WalkSegment;
    import com.amap.api.search.route.Route;
    import com.amap.api.search.route.Segment;
    public class RouteOverlay implements OnMarkerClickListener, InfoWindowAdapter {
    
        private AMap mMap;
        private Route mRoute;
        private LatLng startPoint;
        private LatLng endPoint;
        private Context mContext;
        private Map<Integer, Marker> markerMap;
        private int currentIndex = 0;
        private static int zoomLevel = 15;
    
        public RouteOverlay(Context context, AMap map, Route route) {
            mContext = context;
            mMap = map;
            mRoute = route;
            mMap.setOnMarkerClickListener(this);
            mMap.setInfoWindowAdapter(this);
            startPoint = SearchPointConvert(route.getStartPos());
            endPoint = SearchPointConvert(route.getTargetPos());
            markerMap = new HashMap<Integer, Marker>();
        }
    
        /**
         * 绘制节点和线路
         */
        public void addMarkerLine() {
            Marker startMarker = mMap.addMarker((new MarkerOptions())
                    .position(startPoint)
                    .icon(BitmapDescriptorFactory.fromResource(R.drawable.start))
                    .title("0"));
            startMarker.showInfoWindow();
            mMap.moveCamera(CameraUpdateFactory
                    .newLatLngZoom(startPoint, zoomLevel));
            markerMap.put(0, startMarker);
            for (int i = 0; i < mRoute.getStepCount(); i++) {
                if (i != 0) {
                    Segment segment = mRoute.getStep(i);
                    BitmapDescriptor icon = null;
    
                    if (segment instanceof BusSegment) {
                        icon = BitmapDescriptorFactory.fromResource(R.drawable.little);
                    } else if (segment instanceof WalkSegment) {
                        icon = BitmapDescriptorFactory.fromResource(R.drawable.little);
                    } else if (segment instanceof DriveSegment) {
                        icon = BitmapDescriptorFactory.fromResource(R.drawable.little);
                    }
                    Marker tempMarker = mMap.addMarker((new MarkerOptions())
                            .position(
                                    SearchPointConvert(mRoute.getStep(i)
                                            .getFirstPoint())).icon(icon)
                            .anchor(0.5f, 0.5f).title("" + i));
                    markerMap.put(i, tempMarker);
    
                }
                mMap.addPolyline((new PolylineOptions())
                        .addAll(convertArrList(mRoute.getStep(i).getShapes()))
                        .color(Color.argb(180, 54, 114, 227)).width(20.9F));
            }
            Marker targerMarker = mMap.addMarker((new MarkerOptions())
                    .position(endPoint)
                    .icon(BitmapDescriptorFactory.fromResource(R.drawable.end))
                    .title("" + (mRoute.getStepCount())));
            markerMap.put(mRoute.getStepCount(), targerMarker);
    
        }
    
        /**
         * 清除绘制
         */
        public void removeFormMap() {
            currentIndex = 0;
            mMap.clear();
        }
    
        public boolean showPrePopInfo() {
            if (currentIndex > 0) {
                currentIndex--;
                Marker merker = markerMap.get(currentIndex);
                mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(
                        merker.getPosition(), zoomLevel));
                merker.showInfoWindow();
            }
            if (currentIndex == 0) {
                return false;
            } else {
                return true;
            }
        }
    
        public boolean showNextPopInfo() {
            if (currentIndex < mRoute.getStepCount()) {
                currentIndex++;
                Marker merker = markerMap.get(currentIndex);
                mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(
                        merker.getPosition(), zoomLevel));
                merker.showInfoWindow();
            }
            if(currentIndex == mRoute.getStepCount()){
                return false;
            }else{
                return true;
            }
        }
    
        @Override
        public boolean onMarkerClick(Marker marker) {
            marker.showInfoWindow();
            currentIndex = Integer.parseInt(marker.getTitle());
            return false;
        }
    
        @Override
        public View getInfoContents(Marker arg0) {
            int index = Integer.parseInt(arg0.getTitle());
            return getInfoView(mContext, index);
        }
    
        @Override
        public View getInfoWindow(Marker arg0) {
            return null;
        }
    
        /**
         * 根据Segment index 生成popInfo view
         * 
         * @param index
         * @return
         */
        public View getInfoView(Context cnt, int index) {
            if (index < 0 || index > mRoute.getStepCount()) {
                return null;
            }
    
            LinearLayout ll_parents = new LinearLayout(cnt);
            ll_parents.setOrientation(LinearLayout.VERTICAL);
            ll_parents.setBackgroundResource(R.drawable.custom_info_bubble);
    
            LinearLayout ll_child1 = new LinearLayout(cnt);
            ll_child1.setOrientation(LinearLayout.HORIZONTAL);
            ll_child1.setGravity(Gravity.AXIS_PULL_BEFORE);
            TextView titleVw = new TextView(cnt);
            String spannedInfos[] = getSpannedInfo(index).toString()
                    .split("\\n", 2);
            titleVw.setTextColor(Color.BLACK);
            titleVw.setText(AMapUtil.stringToSpan(spannedInfos[0]));
            titleVw.setPadding(3, 0, 0, 3);
            ll_child1.addView(titleVw, new LinearLayout.LayoutParams(
                    LinearLayout.LayoutParams.FILL_PARENT,
                    LinearLayout.LayoutParams.WRAP_CONTENT));
    
            TextView backgroud = new TextView(cnt);
            backgroud.setBackgroundColor(Color.rgb(165, 166, 165));
            backgroud.setLayoutParams(new LinearLayout.LayoutParams(
                    LinearLayout.LayoutParams.FILL_PARENT, 1));
    
            LinearLayout ll_child3 = new LinearLayout(cnt);
            ll_child3.setOrientation(LinearLayout.VERTICAL);
    
            TextView titleVwdown = new TextView(cnt);
            if (spannedInfos.length == 2) {
                ll_child3.addView(backgroud, new LinearLayout.LayoutParams(
                        LinearLayout.LayoutParams.FILL_PARENT, 1));
    
                titleVwdown.setText(AMapUtil.stringToSpan(spannedInfos[1]));
                titleVwdown.setTextColor(Color.rgb(82, 85, 82));
                ll_child3.addView(titleVwdown, new LinearLayout.LayoutParams(
                        LinearLayout.LayoutParams.FILL_PARENT,
                        LinearLayout.LayoutParams.WRAP_CONTENT));
            }
    
            LinearLayout ll_child2 = new LinearLayout(cnt);
            ll_child2.setOrientation(LinearLayout.HORIZONTAL);
            ll_child2.setGravity(Gravity.CENTER_HORIZONTAL);
    
            ll_parents.addView(ll_child1, new LinearLayout.LayoutParams(
                    LinearLayout.LayoutParams.FILL_PARENT,
                    LinearLayout.LayoutParams.WRAP_CONTENT));
    
            ll_parents.addView(ll_child3, new LinearLayout.LayoutParams(
                    LinearLayout.LayoutParams.FILL_PARENT, 1));
    
            ll_parents.addView(ll_child2, new LinearLayout.LayoutParams(
                    LinearLayout.LayoutParams.FILL_PARENT,
                    LinearLayout.LayoutParams.WRAP_CONTENT));
    
            return ll_parents;
        }
    
        /**
         * 获取popInfo描述
         * 
         * @param index
         * @return
         */
        public Spanned getSpannedInfo(int index) {
            if (index == mRoute.getStepCount()) {
                StringBuffer buf = new StringBuffer();
                buf.append(ChString.Arrive);
                buf.append(mRoute.getTargetPlace());
                return AMapUtil.stringToSpan(buf.toString());
            }
            if (mRoute.getStep(index) instanceof BusSegment) {
                return getBusSpan(index);
            } else if (mRoute.getStep(index) instanceof DriveSegment) {
                return getCarInfo(index);
            }
    
            return getFootSpan(index);
        }
    
        /**
         * 获取公交popInfo描述
         * 
         * @param index
         * @return
         */
        private Spanned getBusSpan(int index) {
            BusSegment seg = (BusSegment) mRoute.getStep(index);
            StringBuffer buf = new StringBuffer();
    
            buf.append(AMapUtil.colorFont(seg.getLineName(), AMapUtil.HtmlBlack));
            buf.append(AMapUtil.makeHtmlSpace(3));
            buf.append(AMapUtil.colorFont(seg.getLastStationName(),
                    AMapUtil.HtmlBlack));
            buf.append(ChString.Direction);
            buf.append(AMapUtil.makeHtmlNewLine());
    
            buf.append(ChString.GetOn + " : ");
            buf.append(AMapUtil.colorFont(seg.getOnStationName(),
                    AMapUtil.HtmlBlack));
            buf.append(AMapUtil.makeHtmlSpace(3));
            buf.append(AMapUtil.makeHtmlNewLine());
    
            buf.append(ChString.GetOff + " : ");
            buf.append(AMapUtil.colorFont(seg.getOffStationName(),
                    AMapUtil.HtmlBlack));
            buf.append(AMapUtil.makeHtmlNewLine());
            buf.append(String.format("%s%d%s , ", ChString.Gong,
                    seg.getStopNumber() - 1, ChString.Zhan));
    
            buf.append(ChString.About + AMapUtil.getFriendlyLength(seg.getLength()));
    
            return AMapUtil.stringToSpan(buf.toString());
        }
    
        /**
         * 获取驾车popInfo描述
         * 
         * @param index
         * @return
         */
        public Spanned getCarInfo(int index) {
            String content = "";
            DriveSegment seg = (DriveSegment) mRoute.getStep(index);
            if (!AMapUtil.IsEmptyOrNullString(seg.getRoadName())
                    && !AMapUtil.IsEmptyOrNullString(seg.getActionDescription())) {
                content = seg.getActionDescription() + " --> " + seg.getRoadName();
            } else {
                content = seg.getActionDescription() + seg.getRoadName();
            }
    
            content = AMapUtil.colorFont(content, AMapUtil.HtmlGray);
            content += AMapUtil.makeHtmlNewLine();
            content += String.format("%s%s", ChString.About,
                    AMapUtil.getFriendlyLength(seg.getLength()));
    
            return AMapUtil.stringToSpan(content);
        }
    
        /**
         * 获取步行popInfo描述
         * 
         * @param index
         * @return
         */
        private Spanned getFootSpan(int index) {
            if (mRoute.getMode() == Route.WalkDefault) {
                String content = "";
                WalkSegment seg = (WalkSegment) mRoute.getStep(index);
                if (!AMapUtil.IsEmptyOrNullString(seg.getRoadName())
                        && !AMapUtil
                                .IsEmptyOrNullString(seg.getActionDescription())) {
                    content = seg.getActionDescription() + " --> "
                            + seg.getRoadName();
                } else {
                    content = seg.getActionDescription() + seg.getRoadName();
                }
    
                content = AMapUtil.colorFont(content, AMapUtil.HtmlGray);
                content += AMapUtil.makeHtmlNewLine();
                content += String.format("%s%s", ChString.About,
                        AMapUtil.getFriendlyLength(seg.getLength()));
    
                return AMapUtil.stringToSpan(content);
            } else {
                StringBuilder result = new StringBuilder();
                result.append(ChString.ByFoot).append(ChString.To);
    
                if (index == mRoute.getStepCount() - 1) {
                    result.append(AMapUtil.colorFont(ChString.TargetPlace,
                            AMapUtil.HtmlGray));
                } else {
                    result.append(AMapUtil.colorFont(
                            ((BusSegment) mRoute.getStep(index + 1)).getLineName()
                                    + ChString.Station, AMapUtil.HtmlGray));
                }
    
                result.append(AMapUtil.makeHtmlNewLine());
                result.append(ChString.About
                        + AMapUtil.getFriendlyLength(mRoute.getStep(index)
                                .getLength()));
    
                return AMapUtil.stringToSpan(result.toString());
            }
        }
    
        /**
         * 工具方法, 将一个segment shaps 转化成map的LatLng list 方便添加到地图
         * 
         * @param shapes
         * @return
         */
        private ArrayList<LatLng> convertArrList(LatLonPoint[] shapes) {
            ArrayList<LatLng> lineShapes = new ArrayList<LatLng>();
            for (LatLonPoint point : shapes) {
                LatLng latLngTemp = SearchPointConvert(point);
                lineShapes.add(latLngTemp);
            }
            return lineShapes;
        }
        /**
         * 工具方法,将搜索得到的LatLonPoint转成latLng 才能添加到地图上
         * 
         * @param latLonPoint
         * @return
         */
        private LatLng SearchPointConvert(LatLonPoint latLonPoint) {
            return new LatLng(latLonPoint.getLatitude(), latLonPoint.getLongitude());
        }
    }

    ChString.java

    package com.xmb.test_1;
    
    public class ChString {
        public static final String Kilometer = "\u516c\u91cc";// "公里";
        public static final String Meter = "\u7c73";// "米";
        public static final String ByFoot = "\u6b65\u884c";// "步行";
        public static final String To = "\u53bb\u5f80";// "去往";
        public static final String Station = "\u8f66\u7ad9";// "车站";
        public static final String TargetPlace = "\u76ee\u7684\u5730";// "目的地";
        public static final String StartPlace = "\u51fa\u53d1\u5730";// "出发地";
        public static final String About = "\u5927\u7ea6";// "大约";
        public static final String Direction = "\u65b9\u5411";// "方向";
    
        public static final String GetOn = "\u4e0a\u8f66";// "上车";
        public static final String GetOff = "\u4e0b\u8f66";// "下车";
        public static final String Zhan = "\u7ad9";// "站";
    
        public static final String cross = "\u4ea4\u53c9\u8def\u53e3"; // 交叉路口
        public static final String type = "\u7c7b\u522b"; // 类别
        public static final String address = "\u5730\u5740"; // 地址
        public static final String PrevStep = "\u4e0a\u4e00\u6b65";
        public static final String NextStep = "\u4e0b\u4e00\u6b65";
        public static final String Gong = "\u516c\u4ea4";
        public static final String ByBus = "\u4e58\u8f66";
        public static final String Arrive =  "\u5230\u8FBE";// 到达
    }
  • 相关阅读:
    实现业务逻辑的几种不同方法,及其优缺点 事务脚本、表模块、活动记录、领域模型
    JQuery Tree Jquery树型菜单插件
    SQL实现表名更改,列名更改,约束更改
    Differences Between NHibernate and Entity Framework
    CSS菜单,图片阴影,表单样式
    事务
    纯CSS三列布局
    Quartz Develop Practice One
    创建WinPE启动盘、常用imagex指令、常用dism指令
    Using User Defined Types in COM & ATL
  • 原文地址:https://www.cnblogs.com/xmb7/p/3041896.html
Copyright © 2011-2022 走看看