2014-01-08 147 views
0

我已经创建了一个应用程序,显示谷歌地图。它是通过扩展Activity类创建的。 但现在我想让地图显示onclick的选项卡。这是我的主要活动课。 我已经创建了3个选项卡。我想在第一个标签的点击上显示地图。谷歌地图v2不工作标签

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; 

    } 
} 

这里的代码是当我执行上面的代码,它说

android.view.InflateException: Binary XML file line #9: Error inflating class fragment 
用于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> 

代码

回答

0

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

还你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

+0

不能activty扩展它使用的标签是和片段。 – user2504985

+0

@ user2504985然后使用'SupportMapFragment'。我会建议考虑导航抽屉而不是标签 – Raghunandan