重复id 0x7f0c006b,标记null或父id 0xffffffff与MainActivityFragment类的另一个片段

时间:2016-01-22 16:33:12

标签: android android-fragments

我正在创建一个应用程序,我正在尝试使其适用于平板电脑,因为我使用两个不同的activity_main.xml创建了一个双窗格布局,但应用程序崩溃说重复标记错误

我的MainActivityClass:

public class MainActivity extends AppCompatActivity {

    boolean mTwoPane;
    private static final String DETAILFRAGMENT_TAG = "DFTAG";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
                  setContentView(R.layout.activity_main);

        setSupportActionBar(toolbar);
            if (findViewById(R.id.fragment_detail_movie) != null) {
                // The detail container view will be present only in the large-screen layouts
                // (res/layout-sw600dp). If this view is present, then the activity should be
                // in two-pane mode.
                mTwoPane = true;
                // In two-pane mode, show the detail view in this activity by
                // adding or replacing the detail fragment using a
                // fragment transaction.
                if (savedInstanceState == null) {
                    getSupportFragmentManager().beginTransaction()
                            .replace(R.id.fragment_detail_movie, new DetailActivityFragment(), DETAILFRAGMENT_TAG)
                            .commit();
                }
            } else {
                mTwoPane = false;
            }


      }

我的布局activity_main.xml是单窗格布局的片段

    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/fragment_movie"
    android:name="com.example.dell.movielove.MainActivityFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.example.movielove.MainActivityFragment"
    tools:layout="layout/fragment_main" />

我的detail_activity.xml(fragment_detail_movie)是

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/fragment_detail_movie"
    android:name="com.example.dell.movielove.DetailActivityFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.example.dell.movielove.DetailActivityFragment"
    tools:ignore="MergeRootFrame"
    tools:layout="@layout/fragment_detail" />

我的activity_main.xml(sw600dp)是

    <LinearLayout 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"
        android:baselineAligned="false"
        android:divider="?android:attr/dividerHorizontal"
        android:orientation="horizontal"
        tools:context="com.example.dell.movielove.MainActivity">

        <fragment
            android:id="@+id/fragment_movie"
            android:name="com.example.dell.movielove.MainActivityFragment"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="2"
            app:layout_behavior="@string/appbar_scrolling_view_behavior"
            tools:layout="@layout/fragment_main" />

               <---- for second activity(Detail Activity)
        <FrameLayout
            android:id="@+id/fragment_detail_movie"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="4" />

    </LinearLayout>

我的DetailActivity(第二个活动)是

public class DetailActivity extends AppCompatActivity {


    DetailActivityFragment ff;
    ArrayList<review>rev=new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_detail);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        if (savedInstanceState == null) {
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.fragment_detail_movie, new DetailActivityFragment())
                    .commit();
        }

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);


            ff= new DetailActivityFragment();

}}

我的logcat错误是

01-22 11:25:36.150 1310-1310/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                 Process: com.example.dell.movielove, PID: 1310
                                                 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.dell.movielove/com.example.dell.movielove.MainActivity}: android.view.InflateException: Binary XML file line #36: Error inflating class fragment
                                                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
                                                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
                                                     at android.app.ActivityThread.access$800(ActivityThread.java:135)
                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
                                                     at android.os.Handler.dispatchMessage(Handler.java:102)
                                                     at android.os.Looper.loop(Looper.java:136)
                                                     at android.app.ActivityThread.main(ActivityThread.java:5001)
                                                     at java.lang.reflect.Method.invokeNative(Native Method)
                                                     at java.lang.reflect.Method.invoke(Method.java:515)
                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
                                                     at dalvik.system.NativeStart.main(Native Method)
                                                  Caused by: android.view.InflateException: Binary XML file line #36: Error inflating class fragment
                                                     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
                                                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
                                                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
                                                     at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
                                                     at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
                                                     at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
                                                     at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:256)
                                                     at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)
                                                     at com.example.dell.movielove.MainActivity.onCreate(MainActivity.java:21)
                                                     at android.app.Activity.performCreate(Activity.java:5231)
                                                     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
                                                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
                                                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 
                                                     at android.app.ActivityThread.access$800(ActivityThread.java:135) 
                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
                                                     at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                     at android.os.Looper.loop(Looper.java:136) 
                                                     at android.app.ActivityThread.main(ActivityThread.java:5001) 
                                                     at java.lang.reflect.Method.invokeNative(Native Method) 
                                                     at java.lang.reflect.Method.invoke(Method.java:515) 
                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
                                                     at dalvik.system.NativeStart.main(Native Method) 
                                                  Caused by: java.lang.IllegalArgumentException: Binary XML file line #36: Duplicate id 0x7f0c006b, tag null, or parent id 0xffffffff with another fragment for com.example.dell.movielove.MainActivityFragment
                                                     at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2289)
                                                     at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:111)
                                                     at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:314)
                                                     at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:31)
                                                     at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:79)
                                                     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
                                                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
                                                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 
                                                     at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
                                                     at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
                                                     at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
                                                     at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:256) 
                                                     at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109) 
                                                     at com.example.dell.movielove.MainActivity.onCreate(MainActivity.java:21) 
                                                     at android.app.Activity.performCreate(Activity.java:5231) 
                                                     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
                                                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) 
                                                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 
                                                     at android.app.ActivityThread.access$800(ActivityThread.java:135) 
                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
                                                     at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                     at android.os.Looper.loop(Looper.java:136) 
                                                     at android.app.ActivityThread.main(ActivityThread.java:5001) 
                                                     at java.lang.reflect.Method.invokeNative(Native Method) 
                                                     at java.lang.reflect.Method.invoke(Method.java:515) 
                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
                                                     at dalvik.system.NativeStart.main(Native Method) 

我的MainActivityFragment类是

public class MainActivityFragment extends Fragment implements PhotoAlbumAdapter.OnItemClickListener {

    private static final String STATE_MOVIE = "state_movie" ;


    private RecyclerView recyclerView;
    private RecyclerView.LayoutManager layoutManager;
    PhotoAlbumAdapter mAdapter;
    VolleySingleton volleySingleton;
    RequestQueue requestQueue;
    ArrayList<Movie>list_movie=new ArrayList();

    String API = "api_key";
    String SORT="sort_by";
    String url;
    public MainActivityFragment() {
    }


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setHasOptionsMenu(true);
 volleySingleton= VolleySingleton.getInstance();
requestQueue=volleySingleton.getRequestQueue();
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_main, container, false);

        recyclerView = (RecyclerView) rootView.findViewById(R.id.recyle_view);
        recyclerView.setHasFixedSize(true);
        layoutManager = new GridLayoutManager(getActivity(), 2, GridLayoutManager.VERTICAL, false);

        recyclerView.setLayoutManager(layoutManager);


        registerForContextMenu(recyclerView);

        mAdapter = new PhotoAlbumAdapter(getActivity());

        recyclerView.setAdapter(mAdapter);
        mAdapter.SetOnItemClickListener(MainActivityFragment.this);
        if(savedInstanceState !=null){
            list_movie=savedInstanceState.getParcelableArrayList(STATE_MOVIE);
            mAdapter.setMovie(list_movie);
        }
        fetch_movie("vote_count.desc");

        return rootView;
    } 

0 个答案:

没有答案