0

Im пытается создать меню, которое будет управлять фрагментами - экранами. (Так же, как в Instagram),Сбой приложения при попытке показать несколько фрагментов

Но он выходит из строя:

Код основного вида деятельности:

И в LogCat:

09-29 19:14:11.765: E/ActivityThread(26360): Failed to inflate 
09-29 19:14:11.765: E/ActivityThread(26360): android.view.InflateException: Binary XML file line #255: Error inflating class fragment 
09-29 19:14:11.765: E/ActivityThread(26360): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
09-29 19:14:11.765: E/ActivityThread(26360): at com.example.free.Add.onCreateView(Add.java:143) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:807) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1013) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1112) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.Activity.onCreateView(Activity.java:4664) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
09-29 19:14:11.765: E/ActivityThread(26360): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:275) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.Activity.setContentView(Activity.java:1867) 
09-29 19:14:11.765: E/ActivityThread(26360): at com.example.free.All.onCreate(All.java:26) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.Activity.performCreate(Activity.java:5008) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2139) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2210) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.ActivityThread.access$600(ActivityThread.java:142) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1208) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.os.Handler.dispatchMessage(Handler.java:99) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.os.Looper.loop(Looper.java:137) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.ActivityThread.main(ActivityThread.java:4931) 
09-29 19:14:11.765: E/ActivityThread(26360): at java.lang.reflect.Method.invokeNative(Native Method) 
09-29 19:14:11.765: E/ActivityThread(26360): at java.lang.reflect.Method.invoke(Method.java:511) 
09-29 19:14:11.765: E/ActivityThread(26360): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791) 
09-29 19:14:11.765: E/ActivityThread(26360): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558) 
09-29 19:14:11.765: E/ActivityThread(26360): at dalvik.system.NativeStart.main(Native Method) 
09-29 19:14:11.765: E/ActivityThread(26360): Caused by: java.lang.IllegalArgumentException: Binary XML file line #255: Duplicate id 0x7f07001d, tag null, or parent id 0xffffffff with another fragment for com.google.android.gms.maps.MapFragment 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.Activity.onCreateView(Activity.java:4669) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680) 
09-29 19:14:11.765: E/ActivityThread(26360): ... 32 more 
09-29 19:14:12.480: D/AndroidRuntime(26360): Shutting down VM 
09-29 19:14:12.480: W/dalvikvm(26360): threadid=1: thread exiting with uncaught exception (group=0x40ed5300) 
09-29 19:14:12.519: E/AndroidRuntime(26360): FATAL EXCEPTION: main 
09-29 19:14:12.519: E/AndroidRuntime(26360): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.free/com.example.free.All}: android.view.InflateException: Binary XML file line #255: Error inflating class fragment 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2185) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2210) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.ActivityThread.access$600(ActivityThread.java:142) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1208) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.os.Handler.dispatchMessage(Handler.java:99) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.os.Looper.loop(Looper.java:137) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.ActivityThread.main(ActivityThread.java:4931) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at java.lang.reflect.Method.invokeNative(Native Method) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at java.lang.reflect.Method.invoke(Method.java:511) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at dalvik.system.NativeStart.main(Native Method) 
09-29 19:14:12.519: E/AndroidRuntime(26360): Caused by: android.view.InflateException: Binary XML file line #255: Error inflating class fragment 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at com.example.free.Add.onCreateView(Add.java:143) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:807) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1013) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1112) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.Activity.onCreateView(Activity.java:4664) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:275) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.Activity.setContentView(Activity.java:1867) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at com.example.free.All.onCreate(All.java:26) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.Activity.performCreate(Activity.java:5008) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2139) 
09-29 19:14:12.519: E/AndroidRuntime(26360): ... 11 more 
09-29 19:14:12.519: E/AndroidRuntime(26360): Caused by: java.lang.IllegalArgumentException: Binary XML file line #255: Duplicate id 0x7f07001d, tag null, or parent id 0xffffffff with another fragment for com.google.android.gms.maps.MapFragment 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.Activity.onCreateView(Activity.java:4669) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680) 
09-29 19:14:12.519: E/AndroidRuntime(26360): ... 32 more 

линии 143 на "Добавить" :

@Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
       Bundle savedInstanceState) { 
      return inflater.inflate(R.layout.activity_add, container, false); 
     } 

Is t здесь что-то не так с этим?

Расположение:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".All" 
    android:orientation="vertical" > 

    <fragment 
     android:id="@+id/MapFragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     class="com.example.free.MainActivity" 
     android:layout_marginBottom="40dp"> 

    </fragment> 

    <fragment 
     android:id="@+id/AddFragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     class="com.example.free.Add" 
     android:layout_marginBottom="40dp"> 

    </fragment> 

    <Button 
     android:id="@+id/add" 
     android:layout_width="wrap_content" 
     android:layout_height="40dp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:layout_toRightOf="@+id/imageView1" 
     android:text="Add" /> 

    <Button 
     android:id="@+id/map" 
     android:layout_width="wrap_content" 
     android:layout_height="40dp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:layout_toLeftOf="@+id/imageView1" 
     android:text="Map" /> 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="40dp" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:src="@drawable/divider" /> 

</RelativeLayout> 

Спасибо за вашу помощь!

Редактировать

Теперь я делаю это:

Fragment MapFragment = getSupportFragmentManager().findFragmentById(R.id.MapFragment); 
+0

Опубликовать компоновку действий и компоновку фрагментов. – Luksprog

+0

@Luksprog макеты действий очень длинны, но Ive добавил макет фрагмента. Этого достаточно? – NirPes

ответ

1

Вы должны использовать FragmentActivity вместо активности (если вы используете библиотеку поддержки).

AddFragment = (View) findViewById (R.id.AddFragment);

Это не так. Прочтите эту статью, как работают с фрагментами: http://developer.android.com/reference/android/app/Fragment.html

Кстати, вы не можете бросить Фрагмент для просмотра.

+0

что я должен отдать? Я изменил свою активность на FragmentActivity. – NirPes

+0

Использовать метод findFragmentById(). Посмотрите на ссылку, которую я разместил. – Vladimir

+0

Я сделал это. посмотрите на мой отредактированный пост. Теперь мне нужно переключиться между фрагментами и перенести каждый из них на фронт, когда они мне понадобятся. Как мне это сделать? – NirPes

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