2014-01-08 3 views
0

Я создал приложение, отображающее карту google. он был создан путем расширения класса Activity. Но теперь я хочу, чтобы карта отображалась на вкладке. Это мой основной класс активности. Я создал 3 вкладки. Я хочу показать карту по щелчку первой вкладки.google maps 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; 

    } 
} 

Вот код 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 

ответ

0

Ваша деятельность должна распространяться Activty, так как вы используете MapFragment.

Также у вас есть getSupportFragmentManager()

Если нацеливание уровень апи 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

Смежные вопросы