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

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -