Java 类型的方法getFragmentManager()未定义
我使用Android API 19,我想在我的应用程序上精确定位一个位置,我可以获取位置,或者查看GPS和Google play服务是否启用,这些都没有问题,但当我想显示地图时,我的问题就开始了 我发现一个教程说usegetFragmentManager可以做到这一点,但Eclipse给了我以下错误:Java 类型的方法getFragmentManager()未定义,java,android,eclipse,google-maps,Java,Android,Eclipse,Google Maps,我使用Android API 19,我想在我的应用程序上精确定位一个位置,我可以获取位置,或者查看GPS和Google play服务是否启用,这些都没有问题,但当我想显示地图时,我的问题就开始了 我发现一个教程说usegetFragmentManager可以做到这一点,但Eclipse给了我以下错误: The method getFragmentManager() is undefined for the type Mhelper 我的班级是: package com.example.hach
The method getFragmentManager() is undefined for the type Mhelper
我的班级是:
package com.example.hach;
import java.io.IOException;
import java.util.List;
import java.util.Locale;
import java.util.concurrent.ExecutionException;
//import com.example.hach.MainActivity.PlaceholderFragment;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
import android.support.v4.app.FragmentActivity;
import com.google.android.gms.maps.SupportMapFragment;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ContentResolver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.widget.TextView;
import android.widget.Toast;
import android.support.v4.app.* ;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.app.FragmentManager;
public class Mhelper {
static final LatLng HAMBURG = new LatLng(53.558, 9.927);
static final LatLng KIEL = new LatLng(53.551, 9.993);
private GoogleMap map;
public void pinpointlocation(Context context){
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.mapview))
.getMap();
Marker hamburg = map.addMarker(new MarkerOptions().position(HAMBURG)
.title("Hamburg"));
Marker kiel = map.addMarker(new MarkerOptions()
.position(KIEL)
.title("Kiel")
.snippet("Kiel is cool")
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.ic_launcher)));
// Move the camera instantly to hamburg with a zoom of 15.
map.moveCamera(CameraUpdateFactory.newLatLngZoom(HAMBURG, 15));
// Zoom in, animating the camera.
map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
}
......
然后我搜索了一会儿,发现了很多提供的解决方案,但没有一个对我有效,更让我困惑
一个解决方案告诉我们将Contex传递给函数,但另一个解决方案告诉我们这是因为我们应该从Fragment构建类扩展,然后使用此函数,另一个解决方案告诉我们将这些导入:
import android.support.v4.app.* ;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.app.FragmentManager;
但同样的错误,其中一个建议使用
((Activity)context).getFragmentManager()
但我也犯了同样的错误
甚至我也使用了getSupportFragmentManager(),但同样的错误
我该怎么办?我应该创建一个从fragment扩展的新类吗?还有其他简单的方法吗
附言:
我在清单xml中授予了所有类型的权限,我将mapview放在布局xml上,他们没有给我任何错误,我为map提供了google api密钥,即使这与此错误无关。请尝试以下代码:-
map = ((SupportMapFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.mapview))
.getMap();
方法getFragmentManager()属于哪个类?Mhelper类不扩展任何其他类,也不定义ypur自己的getFragmentManager()方法。那么,它是如何工作的呢?使用getSupportFragmentManager()代替它。我使用了它,同样的错误。您正在使用片段支持库。因此,使用getSupportFragmentManager()代替getFragmentManager()。它给了我一个类型为mHelpPeruse getApplicationContext()而不是getActivity()的方法getActivity()未定义。您的解决方案是?使用getSupportFragmentManager()方法,您需要从FragmentActivity扩展类或在类中传递FragmentActivity实例,并使用((FragmentActivity)上下文)。getSupportFragmentManager()语句