我发现消息无法解析方法' getSupportFragmentManager()' 我想片段化为活动。 因为我想在选项卡上使用地图滑动。
public class PETAcikarangsukatani extends Fragment {
Context context;
private static final LatLng SUKATANI = new LatLng(-6.171327, 107.178108);
private static final LatLng WRPOJOK = new LatLng(-6.222411, 107.162158);
private static final LatLng PILAR = new LatLng(-6.257033, 107.156472);
private static final LatLng CIKARANG = new LatLng(-6.256073, 107.143984);
GoogleMap googleMap;
final String TAG = "PathGoogleMapActivity";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.activity_path_google_map, container, false);
context = rootView.getContext();
SupportMapFragment fm = (SupportMapFragment)getSupportFragmentManager()
.findFragmentById(R.id.map);
googleMap = fm.getMap();
答案 0 :(得分:68)
在Fragment
子类中,您必须使用getFragmentManager
代替getSupportFragmentManager
。如果导入来自支持库,您将获得支持。
答案 1 :(得分:44)
对于我的情况, 我确保从
导入 Fragment 类android.support.v4.app.Fragment
不是来自
android.app.Fragment
然后我用了
getActivity()getSupportFragmentManager();
现在它的工作。如果我使用onAttach()中的活动实例也不起作用。
答案 2 :(得分:30)
扩展 FragmentActivity 而非活动
答案 3 :(得分:13)
使用 getFragmentManager() 替换 getSupportFragmentManager() 如果你在api工作21。 或强> 如果您的应用支持早于3.0的Android版本,请确保使用支持库设置Android项目,如设置项目以使用库中所述并且此时使用 getSupportFragmentManager() 。
答案 4 :(得分:12)
使用getActivity().getSupportFragmentManager()
答案 5 :(得分:6)
您也可以使用AppCompatActivity
代替活动
然后getSupportFragmentManager()
将起作用
而且也不要忘记在这种情况下让你的App主题扩展AppCompat主题
答案 6 :(得分:5)
根据文档,getSupportFragmentManager()仅存在于AppCompatActivity类中。它不存在于Activity类中。因此,请确保您的类扩展了AppCompatActivity类。
public class MainActivity extends AppCompatActivity {
}
答案 7 :(得分:3)
getFragmentManager()
试试吧。这适用于我的案例
答案 8 :(得分:2)
getSupportFragmentManager()
不是Fragment
的一部分,所以你无法通过这种方式获得它。您可以使用普通<{1}}从父Activity
获取(最早在onAttach()
)
activity.getSupportFragmentManager();
或者您可以尝试getChildFragmentManager(),这是片段范围内的,但需要API17 +
答案 9 :(得分:2)
你应该使用
getActivity.getSupportFragmentManager() like
//in my fragment
SupportMapFragment fm = (SupportMapFragment)
getActivity().getSupportFragmentManager().findFragmentById(R.id.map);
我也有这个问题,但在getActivity()
之前添加getSupportFragmentManager
后解决了。
答案 10 :(得分:1)
如果您收到“无法解析方法getSupportFragmentManager()”,请尝试使用
this.getSupportFragmentManager()
在处理android
中的DialogFragments时,它对我有用答案 11 :(得分:1)
如果要实例化android.support.v4.app.Fragment
类,则必须调用getActivity().getSupportFragmentManager()
才能解决无法解决的问题。但是,Google上Fragment上的Android官方文档倾向于忽略这个简单的问题,他们仍然在没有getActivity()
前缀的情况下进行记录。
答案 12 :(得分:0)
我尝试了以上所有,但没有工作
最后尝试了我自己的
getBaseActivity().getFragmentManager()
正在工作.. :))
答案 13 :(得分:0)
对我来说,我确保要这样导入v4:
import android.support.v4.app.DialogFragment;
然后使用:
getActivity().getFragmentManager()