android - Error inflating class fragment in activity layout -


i have layout activity:

    <fragment         android:name="com.myapp.fragment1"         android:id="@+id/fragment1"         android:layout_width="match_parent"         android:layout_height="match_parent"         tools:layout="@layout/fragment1" />      <fragment         android:name="com.myapp.listfragment1"         android:id="@+id/fragment2"         android:layout_width="match_parent"         android:layout_height="match_parent"/>  </relativelayout> 

the first fragment (fragment1) extends fragment, whilst second fragment extends listfragment. don't have layout listfragment.

the activity code is:

protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_info); } 

an exception thrown on setcontentview:

error inflating class fragment

the listfragment code is:

@override public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setlistadapter(new mylistadapter(getactivity(), prices)); }  @override public void onviewcreated(view view, bundle savedinstancestate) {     super.onviewcreated(view, savedinstancestate);     getlistview().setdivider(null); } 

what correct way have multiple fragments in activity?

you can using sectionspageradapter (swipe view) or navigationdrawer (navigation drawer). have used swipe view 1 of applications. here codes.

mainactivity.java

public class mainactivity extends appcompatactivity implements actionbar.tablistener {       sectionspageradapter msectionspageradapter;       /**      * {@link viewpager} host section contents.      */     viewpager mviewpager;      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main);           // set action bar.         final actionbar actionbar = getsupportactionbar();         actionbar.setnavigationmode(actionbar.navigation_mode_tabs);          // create adapter return fragment each of 3         // primary sections of activity.         msectionspageradapter = new sectionspageradapter(getsupportfragmentmanager());            // set viewpager sections adapter.         mviewpager = (viewpager) findviewbyid(r.id.pager);         mviewpager.setadapter(msectionspageradapter);          // when swiping between different sections, select corresponding         // tab. can use actionbar.tab#select() if have         // reference tab.         mviewpager.setonpagechangelistener(new viewpager.simpleonpagechangelistener() {             @override             public void onpageselected(int position) {                 actionbar.setselectednavigationitem(position);             }         });           //getting icons in icons veriable          final int[] icons = new int[]{                  r.drawable.chat,                 r.drawable.friends,                 r.drawable.profile,            };          // each of sections in app, add tab action bar.         (int = 0; < msectionspageradapter.getcount(); i++) {             // create tab text corresponding page title defined             // adapter. specify activity object, implements             // tablistener interface, callback (listener) when             // tab selected.             actionbar.addtab(                     actionbar.newtab()                             .seticon(getresources().getdrawable(icons[i])).settablistener(this));         }     }       @override     public boolean oncreateoptionsmenu(menu menu) {         // inflate menu; adds items action bar if present.         getmenuinflater().inflate(r.menu.menu_main, menu);         return true;     }      @override     public boolean onoptionsitemselected(menuitem item) {         // take appropriate action each action item click         switch (item.getitemid()) {             case r.id.action_search:                 // search action                 return true;             default:                 return super.onoptionsitemselected(item);         }     }      @override     public void ontabselected(actionbar.tab tab, fragmenttransaction fragmenttransaction) {         // when given tab selected, switch corresponding page in         // viewpager.         mviewpager.setcurrentitem(tab.getposition());     }      @override     public void ontabunselected(actionbar.tab tab, fragmenttransaction fragmenttransaction) {     }      @override     public void ontabreselected(actionbar.tab tab, fragmenttransaction fragmenttransaction) {     }      /**      * {@link fragmentpageradapter} returns fragment corresponding      * 1 of sections/tabs/pages.      */     public class sectionspageradapter extends fragmentpageradapter {          public sectionspageradapter(fragmentmanager fm) {             super(fm);         }           @override         public fragment getitem(int index) {              switch (index) {                 case 0:                     // top rated fragment activity                     return new chatfragment();                 case 1:                     return new friendsfragment();                     // games fragment activity                     //return new profilefragment();                 case 2:                     // movies fragment activity                     //return new friendsfragment();                     return new profilefragment();              }              return null;         }          @override         public int getcount() {             // show 3 total pages.             return 3;         }          @override         public charsequence getpagetitle(int position) {             locale l = locale.getdefault();             switch (position) {                 case 0:                     return getstring(r.string.chat_tab).touppercase(l);                 case 1:                     return getstring(r.string.friends_tab).touppercase(l);                 case 2:                     return getstring(r.string.profile_tab).touppercase(l);             }             return null;         }     }      /**      * placeholder fragment containing simple view.      */     public static class placeholderfragment extends fragment {         /**          * fragment argument representing section number          * fragment.          */         private static final string arg_section_number = "section_number";          /**          * returns new instance of fragment given section          * number.          */         public static placeholderfragment newinstance(int sectionnumber) {             placeholderfragment fragment = new placeholderfragment();             bundle args = new bundle();             args.putint(arg_section_number, sectionnumber);             fragment.setarguments(args);             return fragment;         }          public placeholderfragment() {         }          @override         public view oncreateview(layoutinflater inflater, viewgroup container,                                  bundle savedinstancestate) {             view rootview = inflater.inflate(r.layout.fragment_main, container, false);             return rootview;         }     } } 

friendsfragment.java

public class friendsfragment extends fragment {      @override     public view oncreateview(layoutinflater inflater, viewgroup container,                              bundle savedinstancestate) {          view rootview = inflater.inflate(r.layout.fragment_friends, container, false);          return rootview;     }       } 

activity_main.xml

<android.support.v4.view.viewpager xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools" android:id="@+id/pager"     android:layout_width="match_parent" android:layout_height="match_parent"     tools:context=".mainactivity" /> 

fragment_main.xml

    <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"      android:paddingleft="@dimen/activity_horizontal_margin"     android:paddingright="@dimen/activity_horizontal_margin"     android:paddingtop="@dimen/activity_vertical_margin"     android:paddingbottom="@dimen/activity_vertical_margin"     tools:context=".mainactivity$placeholderfragment">      <textview          android:id="@+id/section_label"          android:layout_width="wrap_content"         android:layout_height="wrap_content" />  </relativelayout> 

fragment_friends.xml

<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="vertical"     android:layout_width="match_parent" android:layout_height="match_parent">      <textview         android:id="@+id/email_view"         android:layout_width="fill_parent"         android:layout_height="fill_parent"         android:text="@string/friends_tab"         android:layout_gravity="center"         android:gravity="center"/>  </linearlayout> 

this sample code of project. can use own code java or xml. here tried show how call fragments in mainactivityusing swipe view. hope helps.


Comments

Popular posts from this blog

javascript - Google App Script ContentService downloadAsFile not working -

javascript - Function overwritting -

c# - Exception when attempting to modify Dictionary -