SupportMapFragmentManager无法解析

时间:2013-12-30 09:59:45

标签: android android-fragments supportmapfragment

我正在尝试在片段中创建一个SupportMapFragment ..我收到以下错误: The method SupportFragmentManager() is undefined for the type MapFragment

我的代码如下:

import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.GoogleMap;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;

public class MapFragment extends Fragment{

     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
       { 
         View v = inflater.inflate(R.layout.fragment_map_view, container, false);
         FragmentManager fm = getFragmentManager();
         FragmentTransaction ft = fm.beginTransaction();
         DateTimeFragment datetime=new DateTimeFragment();
         ft.add(R.id.datetime_container_map, datetime);
         SupportMapFragment mapFragment = (SupportMapFragment)SupportFragmentManager().findFragmentById(R.id.map_fragment);
         return v;
       }

}

但是,SupportMapFragmentManager无法解析。这个问题的解决方案是什么?

2 个答案:

答案 0 :(得分:0)

除了kalyan pvs的回答,你的代码错了,应该是这样的:

 SupportMapFragment mapFragment = (SupportMapFragment)getFragmentManager().findFragmentById(R.id.map_fragment);

在您的问题中,您使用不存在的方法SupportFragmentManager()。 方法getSupportFragmentManager在片段中不可用,但getFragmentManager将起作用。 我想这是因为你的类已经扩展了Fragment的支持版本,因此getFragmentManager将自动返回FragmentManager的支持版本。

答案 1 :(得分:0)

通过CommonsWare检查这些与您的问题类似的答案。查看Answer 1Answer 2

另外,请确保在Properties-> Java Build Path-> Order and Export下选中了Android Private Libraries。然后清理项目并检查问题是否已解决。