谷歌地图v2不在标签内工作

时间:2014-01-08 12:24:02

标签: android android-fragments google-maps-api-2

我创建了一个显示谷歌地图的应用程序。它是通过扩展Activity类创建的。 但现在我希望地图显示在一个标签上。这是我的主要活动课程。 我创建了3个标签。我想点击第一个标签显示地图。

public class MainActivity extends FragmentActivity implements ActionBar.TabListener
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // Initilization
        viewPager = (ViewPager) findViewById(R.id.pager);
        actionBar = getActionBar();
        mAdapter = new TabsPagerAdapter(getSupportFragmentManager());

        viewPager.setAdapter(mAdapter);
        actionBar.setHomeButtonEnabled(false);
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        // Adding Tabs
        for (String tab_name : tabs)
        {
            actionBar.addTab(actionBar.newTab().setText(tab_name).setTabListener(this));

        }

    }

这是地图片段的代码

public class MapFragment extends Fragment
{
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        View rootView = inflater.inflate(R.layout.fragment_map, container, false);

        return rootView;

    }
}

这是fragment_map.xml的代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MapActivity" >

<fragment
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    class="com.google.android.gms.maps.MapFragment" />

<ProgressBar
    android:id="@+id/speedbar"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="250dp"
    android:layout_height="50dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/map"
    android:layout_weight="1" />

<EditText
    android:id="@+id/speed_text"
    android:layout_width="71dp"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_alignTop="@+id/speedbar"
    android:ems="10"
    android:enabled="false" >

    <requestFocus />
</EditText>

当我执行上面的代码时,它说

android.view.InflateException: Binary XML file line #9: Error inflating class fragment

1 个答案:

答案 0 :(得分:0)

由于您使用的是Activty,因此您的活动应该延长MapFragment

您还有getSupportFragmentManager()

如果您定位api级别11及以下,则应使用SupportMapFragment扩展FragmentActivity并使用支持库

如果没有切换到MapFragment

此外,如果您想在片段中显示地图,您应该使用MapView

http://developer.android.com/reference/com/google/android/gms/maps/MapView.html

你可以参考这个

Android - android.view.InflateException: Binary XML file line #8: Error inflating class fragment