实例介绍
【实例简介】集高德地图定位、周边、关键字搜索
【实例截图】
【核心代码】
package com.example.gaodemap; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import android.app.Activity; import android.app.ProgressDialog; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.graphics.BitmapFactory; import android.graphics.Color; import android.location.Criteria; import android.location.LocationManager; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.Button; import android.widget.EditText; import android.widget.ImageButton; import android.widget.RadioGroup; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.RadioGroup.OnCheckedChangeListener; import android.widget.Toast; import com.amap.api.location.AMapLocation; import com.amap.api.location.AMapLocationClient; import com.amap.api.location.AMapLocationClientOption; import com.amap.api.location.AMapLocationClientOption.AMapLocationMode; import com.amap.api.location.AMapLocationListener; import com.amap.api.maps.AMap; import com.amap.api.maps.AMap.InfoWindowAdapter; import com.amap.api.maps.AMap.OnInfoWindowClickListener; import com.amap.api.maps.AMap.OnMapClickListener; import com.amap.api.maps.AMap.OnMarkerClickListener; import com.amap.api.maps.AMapException; import com.amap.api.maps.AMapUtils; import com.amap.api.maps.CameraUpdateFactory; import com.amap.api.maps.LocationSource; import com.amap.api.maps.MapView; import com.amap.api.maps.model.BitmapDescriptor; import com.amap.api.maps.model.BitmapDescriptorFactory; import com.amap.api.maps.model.CircleOptions; import com.amap.api.maps.model.LatLng; import com.amap.api.maps.model.LatLngBounds; import com.amap.api.maps.model.Marker; import com.amap.api.maps.model.MarkerOptions; import com.amap.api.maps.model.NaviPara; import com.amap.api.services.core.LatLonPoint; import com.amap.api.services.core.PoiItem; import com.amap.api.services.core.SuggestionCity; import com.amap.api.services.help.Inputtips; import com.amap.api.services.help.Inputtips.InputtipsListener; import com.amap.api.services.help.InputtipsQuery; import com.amap.api.services.help.Tip; import com.amap.api.services.poisearch.PoiResult; import com.amap.api.services.poisearch.PoiSearch; import com.amap.api.services.poisearch.PoiSearch.OnPoiSearchListener; import com.amap.api.services.poisearch.PoiSearch.SearchBound; public class MainActivity extends Activity implements LocationSource, AMapLocationListener, OnClickListener, OnMapClickListener, OnInfoWindowClickListener, InfoWindowAdapter, OnMarkerClickListener, OnPoiSearchListener ,OnCheckedChangeListener,TextWatcher,InputtipsListener{ MapView mMapView = null; private AMap aMap; private OnLocationChangedListener mListener; private AMapLocationClient mlocationClient; private AMapLocationClientOption mLocationOption; private RadioGroup mGPSModeGroup; private LocationManager locationManager; double x, y; private TextView mLocationErrText; public AMapLocationListener mLocationListener = new MyListener(); // 周边 private PoiResult poiResult; // poi返回的结果 private int currentPage = 0;// 当前页面,从0开始计数 private PoiSearch.Query query;// Poi查询条件类 private LatLonPoint lp=new LatLonPoint(x, y); private Marker locationMarker; // 选择的点 private Marker detailMarker; private Marker mlastMarker; private PoiSearch poiSearch; String cityaddress; private myPoiOverlay poiOverlay;// poi图层 private List<PoiItem> poiItems;// poi数据 private PoiItem mPoi; private RelativeLayout mPoiDetail; private TextView mPoiName, mPoiAddress; private String keyWord = "";//要输入的poi搜索关键字 private EditText mSearchText; private AutoCompleteTextView searchText;// 输入搜索关键字 private ProgressDialog progDialog = null;// 搜索时进度条 private EditText editCity;// 要输入的城市名字或者城市区号 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE);// 不显示程序的标题栏 setContentView(R.layout.activity_main); mMapView = (MapView) findViewById(R.id.map); mMapView.onCreate(savedInstanceState); // aMap.setMapType(aMap.MAP_TYPE_NIGHT); Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); criteria.setPowerRequirement(Criteria.POWER_LOW); init(); } private void init() { mGPSModeGroup = (RadioGroup) findViewById(R.id.gps_radio_group); mGPSModeGroup.setOnCheckedChangeListener(this); mLocationErrText = (TextView) findViewById(R.id.location_errInfo_text); mLocationErrText.setVisibility(View.GONE); if (aMap == null) { aMap = mMapView.getMap(); aMap.setOnMapClickListener(this); aMap.setOnMarkerClickListener(this); aMap.setOnInfoWindowClickListener(this); aMap.setInfoWindowAdapter(this); TextView searchButton = (TextView) findViewById(R.id.btn_search); searchButton.setOnClickListener(this); locationMarker = aMap .addMarker(new MarkerOptions() .anchor(0.5f, 0.5f) .icon(BitmapDescriptorFactory .fromBitmap(BitmapFactory.decodeResource( getResources(), R.drawable.point4))) .position( new LatLng(lp.getLatitude(), lp .getLongitude()))); locationMarker.showInfoWindow(); } setUpMap(); aMap.moveCamera(CameraUpdateFactory.newLatLngZoom( new LatLng(lp.getLatitude(), lp.getLongitude()), 14)); } private void setUpMap() { mPoiDetail = (RelativeLayout) findViewById(R.id.poi_detail); Button searButton = (Button) findViewById(R.id.searchButton); searButton.setOnClickListener(this); Button nextButton = (Button) findViewById(R.id.nextButton); nextButton.setOnClickListener(this); searchText = (AutoCompleteTextView) findViewById(R.id.keyWord); searchText.addTextChangedListener(this);// 添加文本输入框监听事件 editCity = (EditText) findViewById(R.id.city); mPoiDetail.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // Intent intent = new Intent(PoiSearchActivity.this, // SearchDetailActivity.class); // intent.putExtra("poiitem", mPoi); // startActivity(intent); } }); mPoiName = (TextView) findViewById(R.id.poi_name); mPoiAddress = (TextView) findViewById(R.id.poi_address); mSearchText = (EditText) findViewById(R.id.input_edittext); aMap.setLocationSource(this);// 设置定位监听 aMap.getUiSettings().setMyLocationButtonEnabled(true);// 设置默认定位按钮是否显示 aMap.setMyLocationEnabled(true);// 设置为true表示显示定位层并可触发定位,false表示隐藏定位层并不可触发定位,默认是false // 设置定位的类型为定位模式 ,可以由定位、跟随或地图根据面向方向旋转几种 aMap.setMyLocationType(AMap.LOCATION_TYPE_LOCATE); aMap.moveCamera(CameraUpdateFactory.zoomTo(20));// 设置显示比例 mlocationClient = new AMapLocationClient(getApplicationContext()); mlocationClient.setLocationListener(mLocationListener); mLocationOption = new AMapLocationClientOption(); mLocationOption.setLocationMode(AMapLocationMode.Hight_Accuracy); mLocationOption.setNeedAddress(true); mLocationOption.setOnceLocation(false); mLocationOption.setWifiActiveScan(true); mLocationOption.setMockEnable(false); mLocationOption.setInterval(2000); mlocationClient.setLocationOption(mLocationOption); mlocationClient.startLocation(); } protected void doSearchQuery() { keyWord = mSearchText.getText().toString().trim(); currentPage = 0; query = new PoiSearch.Query(keyWord, "", "");// 第一个参数表示搜索字符串,第二个参数表示poi搜索类型,第三个参数表示poi搜索区域(空字符串代表全国) query.setPageSize(20);// 设置每页最多返回多少条poiitem query.setPageNum(currentPage);// 设置查第一页 if (lp != null) { poiSearch = new PoiSearch(this, query); poiSearch.setOnPoiSearchListener(this); poiSearch.setBound(new SearchBound(lp, 5000, true));// // 设置搜索区域为以lp点为圆心,其周围5000米范围 poiSearch.searchPOIAsyn();// 异步搜索 } } /** * 点击搜索按钮 */ public void searchButton() { keyWord = AMapUtil.checkEditText(searchText); if ("".equals(keyWord)) { ToastUtil.show(MainActivity.this, "请输入搜索关键字"); return; } else { doSearchQuery2(); } } private void doSearchQuery2() { showProgressDialog();// 显示进度框 currentPage = 0; query = new PoiSearch.Query(keyWord, "", cityaddress);// 第一个参数表示搜索字符串,第二个参数表示poi搜索类型,第三个参数表示poi搜索区域(空字符串代表全国) query.setPageSize(10);// 设置每页最多返回多少条poiitem query.setPageNum(currentPage);// 设置查第一页 poiSearch = new PoiSearch(this, query); poiSearch.setOnPoiSearchListener(this); poiSearch.searchPOIAsyn(); } /** * 显示进度框 */ private void showProgressDialog() { if (progDialog == null) progDialog = new ProgressDialog(this); progDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); progDialog.setIndeterminate(false); progDialog.setCancelable(false); progDialog.setMessage("正在搜索:\n" keyWord); progDialog.show(); } /** * 隐藏进度框 */ private void dissmissProgressDialog() { if (progDialog != null) { progDialog.dismiss(); } } @Override protected void onDestroy() { super.onDestroy(); // 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理 mMapView.onDestroy(); } @Override protected void onResume() { super.onResume(); // 在activity执行onResume时执行mMapView.onResume (),实现地图生命周期管理 mMapView.onResume(); } @Override protected void onPause() { super.onPause(); // 在activity执行onPause时执行mMapView.onPause (),实现地图生命周期管理 mMapView.onPause(); } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); // 在activity执行onSaveInstanceState时执行mMapView.onSaveInstanceState // (outState),实现地图生命周期管理 mMapView.onSaveInstanceState(outState); } /** * 定位成功后回调函数 */ public void onLocationChanged(AMapLocation amapLocation) { if (mListener != null && amapLocation != null) { if (amapLocation != null && amapLocation.getErrorCode() == 0) { mListener.onLocationChanged(amapLocation);// 显示系统小蓝点 x = amapLocation.getLatitude(); y = amapLocation.getLongitude(); lp=new LatLonPoint(x, y); // Toast.makeText(MainActivity.this, String.valueOf(x y), Toast.LENGTH_LONG).show(); } else { String errText = "定位失败," amapLocation.getErrorCode() ": " amapLocation.getErrorInfo(); Log.e("AmapErr", errText); } } } /** * 激活定位 */ public void activate(OnLocationChangedListener listener) { mListener = listener; if (mlocationClient == null) { mlocationClient = new AMapLocationClient(this); mLocationOption = new AMapLocationClientOption(); // 设置定位监听 mlocationClient.setLocationListener(this); // 设置为高精度定位模式 mLocationOption.setLocationMode(AMapLocationMode.Hight_Accuracy); // 设置定位参数 mlocationClient.setLocationOption(mLocationOption); // 此方法为每隔固定时间会发起一次定位请求,为了减少电量消耗或网络流量消耗, // 注意设置合适的定位时间的间隔(最小间隔支持为2000ms),并且在合适时间调用stopLocation()方法来取消定位请求 // 在定位结束后,在合适的生命周期调用onDestroy()方法 // 在单次定位情况下,定位无论成功与否,都无需调用stopLocation()方法移除请求,定位sdk内部会移除 mlocationClient.startLocation();// 开始定位 } } /** * 停止定位 */ public void deactivate() { mListener = null; if (mlocationClient != null) { mlocationClient.stopLocation(); mlocationClient.onDestroy(); } mlocationClient = null; } public class MyListener implements AMapLocationListener { @Override public void onLocationChanged(AMapLocation amapLocation) { if (amapLocation != null) { if (amapLocation.getErrorCode() == 0) { amapLocation.getLocationType();// 获取当前定位结果来源,如网络定位结果,详见定位类型 amapLocation.getAccuracy(); SimpleDateFormat df = new SimpleDateFormat( "yyyy-MM-ddHH:mm:ss"); Date date = new Date(amapLocation.getTime()); df.format(date);// 定为时间 cityaddress=amapLocation.getAddress(); editCity.setText(cityaddress); amapLocation.getProvince(); amapLocation.getCity(); amapLocation.getDistrict(); amapLocation.getStreet(); } } } } @Override public void onCheckedChanged(RadioGroup arg0, int checkedId) { switch (checkedId) { case R.id.gps_locate_button: // 设置定位的类型为定位模式 aMap.setMyLocationType(AMap.LOCATION_TYPE_LOCATE); break; case R.id.gps_follow_button: // 设置定位的类型为 跟随模式 aMap.setMyLocationType(AMap.LOCATION_TYPE_MAP_FOLLOW); break; case R.id.gps_rotate_button: // 设置定位的类型为根据地图面向方向旋转 aMap.setMyLocationType(AMap.LOCATION_TYPE_MAP_ROTATE); break; } } @Override public void onPoiItemSearched(PoiItem arg0, int arg1) { // TODO Auto-generated method stub } @Override public void onPoiSearched(PoiResult result, int rcode) { dissmissProgressDialog();// 隐藏对话框 if (rcode == 1000) { if (result != null && result.getQuery() != null) {// 搜索poi的结果 if (result.getQuery().equals(query)) {// 是否是同一条 poiResult = result; poiItems = poiResult.getPois();// 取得第一页的poiitem数据,页数从数字0开始 List<SuggestionCity> suggestionCities = poiResult .getSearchSuggestionCitys();// 当搜索不到poiitem数据时,会返回含有搜索关键字的城市信息 if (poiItems != null && poiItems.size() > 0) { //清除POI信息显示 whetherToShowDetailInfo(false); //并还原点击marker样式 if (mlastMarker != null) { resetlastmarker(); } //清理之前搜索结果的marker if (poiOverlay !=null) { poiOverlay.removeFromMap(); } aMap.clear(); poiOverlay = new myPoiOverlay(aMap, poiItems); poiOverlay.addToMap(); poiOverlay.zoomToSpan(); aMap.addMarker(new MarkerOptions() .anchor(0.5f, 0.5f) .icon(BitmapDescriptorFactory .fromBitmap(BitmapFactory.decodeResource( getResources(), R.drawable.point4))) .position(new LatLng(lp.getLatitude(), lp.getLongitude()))); aMap.addCircle(new CircleOptions() .center(new LatLng(lp.getLatitude(), lp.getLongitude())).radius(5000) .strokeColor(Color.BLUE) .fillColor(Color.argb(50, 1, 1, 1)) .strokeWidth(2)); } else if (suggestionCities != null && suggestionCities.size() > 0) { showSuggestCity(suggestionCities); } else { ToastUtil.show(MainActivity.this, "对不起,没有搜索到相关数据"); } } } else { ToastUtil .show(MainActivity.this, "对不起,没有搜索到相关数据"); } } } private void showSuggestCity(List<SuggestionCity> cities) { String infomation = "推荐城市\n"; for (int i = 0; i < cities.size(); i ) { infomation = "城市名称:" cities.get(i).getCityName() "城市区号:" cities.get(i).getCityCode() "城市编码:" cities.get(i).getAdCode() "\n"; } ToastUtil.show(this, infomation); } // 将之前被点击的marker置为原来的状态 private void resetlastmarker() { int index = poiOverlay.getPoiIndex(mlastMarker); if (index < 10) { mlastMarker.setIcon(BitmapDescriptorFactory .fromBitmap(BitmapFactory.decodeResource( getResources(), markers[index]))); }else { mlastMarker.setIcon(BitmapDescriptorFactory.fromBitmap( BitmapFactory.decodeResource(getResources(), R.drawable.marker_other_highlight))); } mlastMarker = null; } @Override public boolean onMarkerClick(Marker marker) { if (marker.getObject() != null) { whetherToShowDetailInfo(true); marker.showInfoWindow(); try { PoiItem mCurrentPoi = (PoiItem) marker.getObject(); if (mlastMarker == null) { mlastMarker = marker; } else { // 将之前被点击的marker置为原来的状态 resetlastmarker(); mlastMarker = marker; } detailMarker = marker; detailMarker.setIcon(BitmapDescriptorFactory .fromBitmap(BitmapFactory.decodeResource( getResources(), R.drawable.poi_marker_pressed))); setPoiItemDisplayContent(mCurrentPoi); } catch (Exception e) { // TODO: handle exception } }else { whetherToShowDetailInfo(false); resetlastmarker(); } return true; } private void setPoiItemDisplayContent(PoiItem mCurrentPoi) { mPoiName.setText(mCurrentPoi.getTitle()); mPoiAddress.setText(mCurrentPoi.getSnippet()); } @Override public View getInfoContents(Marker arg0) { // TODO Auto-generated method stub return null; } @Override public View getInfoWindow(final Marker marker) { View view = getLayoutInflater().inflate(R.layout.poikeywordsearch_uri, null); TextView title = (TextView) view.findViewById(R.id.title); title.setText(marker.getTitle()); TextView snippet = (TextView) view.findViewById(R.id.snippet); snippet.setText(marker.getSnippet()); ImageButton button = (ImageButton) view .findViewById(R.id.start_amap_app); // 调起高德地图app button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startAMapNavi(marker); } }); return view; } /** * 调起高德地图导航功能,如果没安装高德地图,会进入异常,可以在异常中处理,调起高德地图app的下载页面 */ public void startAMapNavi(Marker marker) { // 构造导航参数 NaviPara naviPara = new NaviPara(); // 设置终点位置 naviPara.setTargetPoint(marker.getPosition()); // 设置导航策略,这里是避免拥堵 naviPara.setNaviStyle(NaviPara.DRIVING_AVOID_CONGESTION); // 调起高德地图导航 try { AMapUtils.openAMapNavi(naviPara, getApplicationContext()); } catch (AMapException e) { // 如果没安装会进入异常,调起下载页面 AMapUtils.getLatestAMapApp(getApplicationContext()); } } /** * 判断高德地图app是否已经安装 */ public boolean getAppIn() { PackageInfo packageInfo = null; try { packageInfo = this.getPackageManager().getPackageInfo( "com.autonavi.minimap", 0); } catch (NameNotFoundException e) { packageInfo = null; e.printStackTrace(); } // 本手机没有安装高德地图app if (packageInfo != null) { return true; } // 本手机成功安装有高德地图app else { return false; } } /** * 获取当前app的应用名字 */ public String getApplicationName() { PackageManager packageManager = null; ApplicationInfo applicationInfo = null; try { packageManager = getApplicationContext().getPackageManager(); applicationInfo = packageManager.getApplicationInfo( getPackageName(), 0); } catch (PackageManager.NameNotFoundException e) { applicationInfo = null; } String applicationName = (String) packageManager .getApplicationLabel(applicationInfo); return applicationName; } @Override public void onInfoWindowClick(Marker arg0) { // TODO Auto-generated method stub } @Override public void onMapClick(LatLng arg0) { // TODO Auto-generated method stub } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_search: doSearchQuery(); break; case R.id.searchButton: searchButton(); break; /** * 点击下一页按钮 */ case R.id.nextButton: nextButton(); break; default: break; } } /** * 点击下一页按钮 */ public void nextButton() { if (query != null && poiSearch != null && poiResult != null) { if (poiResult.getPageCount() - 1 > currentPage) { currentPage ; query.setPageNum(currentPage);// 设置查后一页 poiSearch.searchPOIAsyn(); } else { ToastUtil.show(MainActivity.this, "对不起,没有搜索到相关数据"); } } } private int[] markers = {R.drawable.poi_marker_1, R.drawable.poi_marker_2, R.drawable.poi_marker_3, R.drawable.poi_marker_4, R.drawable.poi_marker_5, R.drawable.poi_marker_6, R.drawable.poi_marker_7, R.drawable.poi_marker_8, R.drawable.poi_marker_9, R.drawable.poi_marker_10 }; private void whetherToShowDetailInfo(boolean isToShow) { if (isToShow) { mPoiDetail.setVisibility(View.VISIBLE); } else { mPoiDetail.setVisibility(View.GONE); } } /** * 自定义PoiOverlay * */ private class myPoiOverlay { private AMap mamap; private List<PoiItem> mPois; private ArrayList<Marker> mPoiMarks = new ArrayList<Marker>(); public myPoiOverlay(AMap amap, List<PoiItem> pois) { mamap = amap; mPois = pois; } public void zoomToSpan() { if (mPois != null && mPois.size() > 0) { if (mamap == null) return; LatLngBounds bounds = getLatLngBounds(); mamap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 100)); } } private LatLngBounds getLatLngBounds() { LatLngBounds.Builder b = LatLngBounds.builder(); for (int i = 0; i < mPois.size(); i ) { b.include(new LatLng(mPois.get(i).getLatLonPoint().getLatitude(), mPois.get(i).getLatLonPoint().getLongitude())); } return b.build(); } public void removeFromMap() { for (Marker mark : mPoiMarks) { mark.remove(); } } public int getPoiIndex(Marker marker) { for (int i = 0; i < mPoiMarks.size(); i ) { if (mPoiMarks.get(i).equals(marker)) { return i; } } return -1; } public void addToMap() { for (int i = 0; i < mPois.size(); i ) { Marker marker = mamap.addMarker(getMarkerOptions(i)); PoiItem item = mPois.get(i); marker.setObject(item); mPoiMarks.add(marker); } } private MarkerOptions getMarkerOptions(int index) { return new MarkerOptions() .position( new LatLng(mPois.get(index).getLatLonPoint() .getLatitude(), mPois.get(index) .getLatLonPoint().getLongitude())) .title(getTitle(index)).snippet(getSnippet(index)) .icon(getBitmapDescriptor(index)); } private BitmapDescriptor getBitmapDescriptor(int arg0) { if (arg0 < 10) { BitmapDescriptor icon = BitmapDescriptorFactory.fromBitmap( BitmapFactory.decodeResource(getResources(), markers[arg0])); return icon; }else { BitmapDescriptor icon = BitmapDescriptorFactory.fromBitmap( BitmapFactory.decodeResource(getResources(), R.drawable.marker_other_highlight)); return icon; } } protected String getTitle(int index) { return mPois.get(index).getTitle(); } protected String getSnippet(int index) { return mPois.get(index).getSnippet(); } } @Override public void afterTextChanged(Editable arg0) { // TODO Auto-generated method stub } @Override public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { // TODO Auto-generated method stub } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { String newText = s.toString().trim(); if (!AMapUtil.IsEmptyOrNullString(newText)) { InputtipsQuery inputquery = new InputtipsQuery(newText, cityaddress); Inputtips inputTips = new Inputtips(MainActivity.this, inputquery); inputTips.setInputtipsListener(this); inputTips.requestInputtipsAsyn(); } } @Override public void onGetInputtips(List<Tip> tipList, int rCode) { if (rCode == 1000) {// 正确返回 List<String> listString = new ArrayList<String>(); for (int i = 0; i < tipList.size(); i ) { listString.add(tipList.get(i).getName()); } ArrayAdapter<String> aAdapter = new ArrayAdapter<String>( getApplicationContext(), R.layout.route_inputs, listString); searchText.setAdapter(aAdapter); aAdapter.notifyDataSetChanged(); } else { ToastUtil.showerror(this, rCode); } } }
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论