2014-01-08 188 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