- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我从来没有尝试过谷歌地图。这是他们使用的客户项目
compile project(':google-play-services_lib')
我必须改进他们的设计以支持最新版本的安卓
compile 'com.android.support:appcompat-v7:25.1.1'
它向我显示错误,所以我尝试这个 link .
它说可以通过将 Google Play 服务依赖项更新到 6.1.+ 来修复它。。
然后我用
compile 'com.google.android.gms:play-services:10.2.0'
支持最新版本的android。
然后它向我显示错误 getMap()
,所以我将其转换为 getMapAsync()
但正在处理的是 private static GoogleMap googlemap;
然后像这样分配它:
googlemap=((MapFragment)getFragmentManager().findFragmentById(R.id.places_map)).getMap();
当我把它转换成
googlemap = ((SupportMapFragment)getActivity().getSupportFragmentManager().findFragmentById(R.id.map)).getMapAsync(this);
它告诉我错误。做什么
public class Frnt_mapActivity extends AppCompatActivity implements OnMapReadyCallback {//implements OnMapClickListener, OnMarkerDragListener {
public static double Shop_lat;
public static double Shop_lng;
public String Shop_title;
public String Shop_address;
public String Shop_icons;
ProgressDialog mDialog;
JSONObject jsonobject3;
JSONArray jsonarray3;
// Google Map
//private static GoogleMap googlemap;
public static EditText edit_search;
public static Button btn_search;
ArrayList<SearchBeams> getAllimgs;
// Location
ArrayList<String> world_locationlist;
ArrayList<LocationBeams> worldlocation;
// Looking for
ArrayList<String> looking_forlist;
ArrayList<LookingForBeams> world_looking_for;
public static ArrayList<SearchBeams> searchdata_list;
public static ArrayList<NormalSearchBeams> normlSearchList;
public static String mid;
public static String mpost_title;
public static String mimage;
public static List<String> imglist;
ArrayList<All_products_lat_long> venueList;
Spinner mySpinner2;
public static ArrayList<SearchBeams> GetIMG;
public static TextView txtlocation;
public static TextView txtlookingfor;
public static ArrayList<All_products_lat_long> mpItm;
String vals;
private int i;
private Intent intent;
HashMap<Marker, Integer> hashMap = new HashMap<Marker, Integer>();
public static LatLng latlong;
@Override
public void onMapReady(GoogleMap map) {
map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.frnt_map_activity);
getActionBar().setDisplayShowHomeEnabled(true);
getActionBar().setHomeButtonEnabled(true);
mySpinner2 = (Spinner) findViewById(R.id.spin_looking_for);
// Spinner adapter
txtlookingfor = (TextView) findViewById(R.id.country);
txtlocation = (TextView) findViewById(R.id.rank);
SupportMapFragment mapFragment=getSupportFragmentManager().findFragmentById(R.id.places_map).getMapAsync(this);
googlemap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for ActivityCompat#requestPermissions for more details.
return;
}
googlemap.setMyLocationEnabled(true);
googlemap.getUiSettings().setZoomControlsEnabled(true);
googlemap.getUiSettings().setMyLocationButtonEnabled(true);
googlemap.getUiSettings().setCompassEnabled(true);
googlemap.getUiSettings().setRotateGesturesEnabled(true);
googlemap.getUiSettings().setZoomGesturesEnabled(true);
googlemap.setMyLocationEnabled(true);
intent=new Intent(Frnt_mapActivity.this,MainActivity.class);
googlemap.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker arg0) {
i=hashMap.get(arg0);
intent.putExtra("PRODUCT_ID", venueList.get(i).getId());
startActivity(intent);
//overridePendingTransition( R.anim.slide_right, R.anim.slide_left );
}
});
new Frnt_mIcons_Activity().execute();
new LocationList().execute();
new LookingForList().execute();
edit_search = (EditText)findViewById(R.id.txt_search);
btn_search = (Button)findViewById(R.id.btn_search);
btn_search.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String text;
text=edit_search.getText().toString();
// text!=null &&
if(text.equals("") && text.startsWith(" ")==false){
new GetSearch_data().execute();
/*new Get_normal_search().execute();
edit_search.setText("");*/
}else
new Get_normal_search().execute();
edit_search.setText("");
//new GetSearch_data().execute();
}
});
}
他们正在调用 googlemap 并添加标记。我该如何实现它
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
try{
if(bd!=null){
Marker marker=googlemap.addMarker(new MarkerOptions()
.position(new LatLng(Double.parseDouble(venue.getLatitude()), Double.parseDouble(venue.getLongitude())))
.title(venue.getPost_title())
.icon(bd));
hashMap.put(marker, k);
}
}catch (Exception e){
e.printStackTrace();
}
}
switch (Integer.parseInt(venueList.get(k).getId()))
{
case 5689 :
Marker marker=googlemap.addMarker(new MarkerOptions()
.position(new LatLng(la, ln))
.title(venueList.get(k).getPost_title())
.icon(BitmapDescriptorFactory.fromResource(R.drawable.fruitandveg)));
hashMap.put(marker, k);
break;
case 5779 :
Marker marker1=googlemap.addMarker(new MarkerOptions()
.position(new LatLng(la, ln))
.title(venueList.get(k).getPost_title())
.icon(BitmapDescriptorFactory.fromResource(R.drawable.coffee)));
hashMap.put(marker1, k);
break;
.....}
最佳答案
This is a client project where they use compile project(':google-play-services_lib')
因此,您将其替换为这个(注意 -maps
)
compile 'com.google.android.gms:play-services<b>-maps</b>:10.2.0'
Then it shows me error getMap() so I convert it to getMapAsync()
这是正确的,但是
你真的不应该有一个 static
map 变量。如果应用程序中到处都是 static
变量,则说明设计有问题。
When i convert it to
googlemap = ((SupportMapFragment)getActivity().getSupportFragmentManager().findFragmentById(R.id.map)).getMapAsync(this);
It show me error
嗯,是的,那会出错
1) getActivity()
不是必需的。您已经在 Activity
类中
2) getSupportFragmentManager()
仅在您在类定义中扩展 AppCompatActivity
(或 FragmentActivity
)时可用
3) getMapAsync(this)
将不起作用,除非您在类定义上实现 OnMapReadyCallback
。
如果你做了所有这些,那么你会得到类似的东西
import com.google.android.gms.maps.OnMapReadyCallback;
public class YourActivity extends AppCompatActivity
implements OnMapReadyCallback {
private void SupportMapFragment mMapFragment;
// private GoogleMap mMap; // Commented so you don't use in onCreate
@Override
public void onMapReady(GoogleMap map) {
// this.mMap = map;
map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
// TODO: call other map setup methods
}
// Inside onCreate
mMapFragment = getSupportFragmentManager().findFragmentById(R.id.map);
mMapFragment.getMapAsync(this);
// Don't do this in onCreate
// googlemap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
}
关于java - getMap 到 getMapAsync 隐蔽错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42743123/
我有一个使用改造连接到 api 并在 recyclerview 中显示数据的应用程序,我现在添加了另一个 fragment ,在谷歌地图 fragment 上显示此数据。 当我在 recyclervi
我在使用 getMapAsync() 时遇到使用回调的错误,因为 getMap() 已弃用。关于如何更新此代码以免引发错误的任何想法?引入 API 以在 map 上定位图钉 05-26 22:50:1
我在尝试调用它时遇到错误“无法解析符号 getMapAsync”。我读过其他帖子,但它们的代码也和我的一样。所以这里是: package barsoftware.suedtirolpointer; i
如有任何语法错误,请原谅。我按照教程在 fragment 中查看了谷歌地图,但出了点问题。 这是我的文件 .java,它与 fragment Hook : public class MapFragme
如果我故意断开设备与互联网的连接或输入错误的 API key ,则调用 SupportMapFragment.getMapAsync GoogleMaps 只会显示灰屏 并且似乎没有办法从 Googl
我正在尝试创建一个具有简单用户界面的应用程序。它由一个 Activity 组成,其中包含 2 个按钮、一个 TextView 和一个占据一半屏幕的谷歌地图 fragment 。我使用 Android
我正在印度尼西亚 java 上做一个简单的 map View 。根据 logcat,我目前在处理 map fragment 时遇到问题,特别是在 getMapASync 返回空指针引用时。 这是我的代
我正在使用带有不同 fragment 的滑动标签。在 map fragment 中,我不能将嵌套 fragment 用作 XML。下面是 Java 代码和 XML 文件。我被困在 getMapAsyn
在今天更新我的 SDK 之前,我有工作代码(为了将来引用,请查看问题询问日期)。 .getMap 曾经发出警告,表明它已被弃用,但现在它甚至不被识别为有效输入。我假设这是因为 API 24(Andro
需要在fragment中获取 map 管理。 我的代码 public class Fragment1 extends android.support.v4.app.Fragment implement
在我将 getMap() 更改为 getMapAsync() 并实现 OnMapReadyCallback 后,我收到错误 NullPointerException。 这里是 logcat Cause
我是一名学生程序员,目前正在编写路线指南应用程序。 突然,在尝试打开我的 Android 应用程序时,它崩溃了。因此,我尝试搜索大量有关如何修复收到的错误消息的教程。不幸的是,我已经失去了希望,来到这
mapFragment.getMapAsync(this) 在 map 中返回 null 我正在尝试设计一个带有谷歌地图和抽屉导航的应用程序,我不断收到尝试在空对象引用上调用虚拟方法“void com
我在 Fragment 中实现 Google map 时遇到了问题。 这是我的 fragment 类的一部分: public class FragmentStoreFinderMap extends
我正在使用 com.google.android.gms:play-services-maps:7.5.0 版本的 Google map 服务。当试图调用下面我得到 java.lang.NullPoi
我确实需要帮助来解决我不知道如何解决的问题。我正在尝试为我父亲申请,我将与 Map 合作。该问题具体出现在 while 循环内的 mapFrag.getMapAsync() 中。 @Override
我正在尝试重振我在 2014 年制作的旧 Google map 应用程序。除了一个问题之外,没有任何问题:尝试在我在同一个类中调用的自定义方法内初始化 map ,我收到此错误: java.lang.N
我从来没有尝试过谷歌地图。这是他们使用的客户项目 compile project(':google-play-services_lib') 我必须改进他们的设计以支持最新版本的安卓 compile '
我一直在尝试将我的 SupportMapFragment 嵌套到另一个 Fragment 中,但在尝试调用 getMapAsync() 时我一直收到 nullPointerException我的 Su
我正在尝试根据 Stack Overflow 的其中一个答案创建一个交互式信息窗口。但是,我在代码中使用 getMap() 时遇到错误。虽然我已经尝试使用 getMapAsync(),但我无法解决问题
我是一名优秀的程序员,十分优秀!