android xml: Error inflating class fragment -


i having problem fragments.i developing app 360 security , having problem implementing fragments ,getting "binary xml file line #1: error inflating class fragment".

here xml file.i have tried every solution please me.

thanks in advance.

    <fragment xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:id="@+id/item_list"     android:name="sabby.completesecurity.mainlistfragment"     android:layout_width="match_parent"     android:layout_height="match_parent"     tools:context=".itemlistactivity"     tools:layout="@android:layout/list_content" /> 

this activity file:

    package sabby.completesecurity;      import android.app.activity;     import android.app.alertdialog;     import android.content.broadcastreceiver;     import android.content.context;     import android.content.intent;     import android.content.intentfilter;     import android.os.bundle;     import android.support.v4.app.fragmentactivity;     import android.view.menu;     import android.view.menuitem;     import android.widget.framelayout;     import android.widget.imageview;     import sabby.completesecurity.r;       public class mainactivitycache extends fragmentactivity implements sabby.completesecurity.maincallbacks {  private boolean misdualpane; private boolean misartshowed = false;  @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_main_cache);     misdualpane = findviewbyid(r.id.item_detail_container) != null;      //show art when no fragment showed, make sure no detail fragment present.     if (misdualpane && getfragmentmanager().findfragmentbytag(sabby.completesecurity.detailfragment.fragment_tag) == null) {         imageview imageview = new imageview(this);         imageview.setimageresource(r.mipmap.ic_launcher);         imageview.setscaletype(imageview.scaletype.fit_center);         ((framelayout) findviewbyid(r.id.item_detail_container)).addview(imageview);         misartshowed = true;     } }  @override public void onitemselected(string packagename) {     if (misdualpane) {         //hide art when fragment showed.         if (misartshowed) {             ((framelayout) findviewbyid(r.id.item_detail_container)).removeallviews();             misartshowed = false;         }         getfragmentmanager()                 .begintransaction()                 .replace(r.id.item_detail_container, detailfragment.getinstance(packagename), detailfragment.fragment_tag)                 .commit();     } else {         intent intent = new intent(this, detailactivity.class);         intent.putextra(detailfragment.extra_package_name, packagename);         startactivity(intent);     } }    @override protected void onstart() {     super.onstart();     registerreceiver(receiver, getintentfilter()); }  @override protected void onstop() {     super.onstop();     unregisterreceiver(receiver); }  private void showaboutdialog() {     new alertdialog.builder(this)             .settitle("about")             .setview(getlayoutinflater().inflate(r.layout.about_dialog_message, null))             .setnegativebutton(android.r.string.ok, null)             .show(); }  /**  * used update list if package added or removed.  */ private intentfilter getintentfilter() {     intentfilter filter = new intentfilter();     filter.adddatascheme("package");     filter.addaction(intent.action_package_changed);     filter.addaction(intent.action_package_replaced);     filter.addaction(intent.action_package_fully_removed);     filter.addaction(intent.action_package_added);     return filter; } enter code here broadcastreceiver receiver = new broadcastreceiver() {     @override     public void onreceive(context context, intent intent) {         mainlistfragment mainlistfragment = (mainlistfragment) getfragmentmanager().findfragmentbyid(r.id.item_list);         if (mainlistfragment != null)             mainlistfragment.loadlist();     } }; 

}

mainlistfragment.java

  package sabby.completesecurity;  import android.app.actionbar; import android.app.activity; import android.app.listfragment; import android.app.progressdialog; import android.content.context; import android.content.pm.applicationinfo; import android.content.pm.ipackagestatsobserver; import android.content.pm.packageinfo; import android.content.pm.packagemanager; import android.content.pm.packagestats; import android.graphics.drawable.drawable; import android.os.asynctask; import android.os.bundle; import android.os.remoteexception; import android.text.format.formatter; import android.view.layoutinflater; import android.view.menu; import android.view.menuinflater; import android.view.menuitem; import android.view.view; import android.view.viewgroup; import android.widget.adapterview; import android.widget.baseadapter; import android.widget.imageview; import android.widget.sectionindexer; import android.widget.spinner; import android.widget.textview;  import sabby.completesecurity.utils.utils;  import java.lang.reflect.invocationtargetexception; import java.lang.reflect.method; import java.text.simpledateformat; import java.util.arraylist; import java.util.collections; import java.util.comparator; import java.util.date; import java.util.list;  public class mainlistfragment extends listfragment implements adapterview.onitemclicklistener, adapterview.onitemselectedlistener {      private static final int sort_name = 0;     private static final int sort_pkg = 1;     private static final int sort_domain = 2;     private static final int sort_installation = 3;     private static final int sort_size = 4;     private static final string instance_state_sort_by = "sort_by";      private adapter madapter;     private list<item> mitemlist = new arraylist<item>();     private int monsizefinisheditemcount;     private packagemanager mpackagemanager;     private progressdialog mprogressdialog;     private layoutinflater mlayoutinflater;     private maincallbacks mcallbacks;     private context mcontext;     private async masyncloader;     private spinner mspinner;     private boolean mspinnerlistenerauthorized;      private simpledateformat msimpledateformat;      private int msortby = 0;      class item {         applicationinfo applicationinfo;         string label;         long date;         long size = -1l;     }      private int mcolorgrey1;     private int mcolorgrey2;      @override     public void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         sethasoptionsmenu(true);         mprogressdialog = new progressdialog(mcontext);         mprogressdialog.settitle(r.string.loading_apps);         mprogressdialog.setprogressstyle(progressdialog.style_horizontal);         mprogressdialog.setcancelable(false);         //used prevent message not showing later         mprogressdialog.setmessage("");          mpackagemanager = mcontext.getpackagemanager();         msimpledateformat = new simpledateformat("dd/mm/yyyy hh:mm:ss");         mcolorgrey1 = getresources().getcolor(r.color.grey_1);         mcolorgrey2 = getresources().getcolor(r.color.grey_2);          actionbar actionbar = getactivity().getactionbar();         actionbar.setdisplayshowcustomenabled(true);          mspinner = new spinner(actionbar.getthemedcontext());         spinneradapter spinneradapter = new spinneradapter(actionbar.getthemedcontext(),                 r.array.sort_spinner_items, android.r.layout.simple_list_item_1);         mspinner.setadapter(spinneradapter);         mspinnerlistenerauthorized = false;         mspinner.setonitemselectedlistener(this);          actionbar.layoutparams layoutparams = new actionbar.layoutparams(viewgroup.layoutparams.match_parent,                 viewgroup.layoutparams.match_parent);         actionbar.setcustomview(mspinner, layoutparams);          if (savedinstancestate != null)             setsortby(savedinstancestate.getint(instance_state_sort_by, -1), false);     }      @override     public void onstart() {         super.onstart();         mspinner.setselection(msortby);     }      @override     public void onsaveinstancestate(bundle outstate) {         super.onsaveinstancestate(outstate);         outstate.putint(instance_state_sort_by, msortby);     }      private void ontaskended(list<item> list) {         retainedfragment retainedfragment = (retainedfragment) getfragmentmanager().findfragmentbytag(retainedfragment.fragment_tag);         retainedfragment.setlist(list);          mitemlist = list;         madapter.notifydatasetchanged();          if (getlistview().getadapter() == null)             setlistadapter(madapter);     }      @override     public void onviewcreated(view view, bundle savedinstancestate) {         super.onviewcreated(view, savedinstancestate);         getlistview().setonitemclicklistener(this);         getlistview().setfastscrollenabled(true);          madapter = new adapter();          retainedfragment retainedfragment = (retainedfragment) getfragmentmanager()                 .findfragmentbytag(retainedfragment.fragment_tag);          if (retainedfragment == null) {             retainedfragment = new retainedfragment();             getfragmentmanager()                     .begintransaction()                     .add(retainedfragment, retainedfragment.fragment_tag)                     .commit();         }          if (retainedfragment.getlist() != null) {             ontaskended(retainedfragment.getlist());              monsizefinisheditemcount = mitemlist.size();             //notify spinner size sort available             spinneradapter adapter = (spinneradapter) mspinner.getadapter();             adapter.notifydatasetchanged();         } else             loadlist();     }      public void loadlist() {         masyncloader = new async();         masyncloader.execute();     }      @override     public void onattach(activity activity) {         super.onattach(activity);         mcallbacks = (maincallbacks) activity;         mcontext = activity;         mlayoutinflater = activity.getlayoutinflater();     }      @override     public void ondetach() {         super.ondetach();         if (masyncloader != null)             masyncloader.cancel(true);         mcallbacks = null;         mcontext = null;         mlayoutinflater = null;     }      @override     public void onitemclick(adapterview<?> adapterview, view view, int i, long l) {         if (mcallbacks != null)             mcallbacks.onitemselected(mitemlist.get(i).applicationinfo.packagename);     }      @override     public void oncreateoptionsmenu(menu menu, menuinflater inflater) {         inflater.inflate(r.menu.fragment_main_list, menu);     }      @override     public boolean onoptionsitemselected(menuitem item) {         switch (item.getitemid()) {             case r.id.action_refresh:                 loadlist();                 return true;         }         return super.onoptionsitemselected(item);     }      @override     public void onitemselected(adapterview<?> adapterview, view view, int i, long l) {         if (mspinnerlistenerauthorized)             setsortby(i, true);          mspinnerlistenerauthorized = true;     }      /**      * sort main list if provided value valid.      * @param sort must 1 of sort_*      * @param checkviews set if views have updated, eg. when restoring state, views aren't      *                   created yet, value must false      */     public void setsortby(int sort, boolean checkviews) {         if (sort >= sort_name && sort <= sort_size) {             msortby = sort;              if (checkviews) {                 checkfastscroll();                  sortapplicationlist(mitemlist, msortby);                 madapter.notifydatasetchanged();             }         }     }      @override     public void onnothingselected(adapterview<?> adapterview) {      }      private void checkfastscroll() {         getlistview().setfastscrollenabled(msortby == sort_name);     }      public void sortapplicationlist(list<item> list, final int sortby) {         collections.sort(list, new comparator<item>() {             @override             public int compare(item item1, item item2) {                 switch (sortby) {                     case sort_name:                         return item1.label.compareto(item2.label);                     case sort_pkg:                         return item1.applicationinfo.packagename.compareto(item2.applicationinfo.packagename);                     case sort_domain:                         boolean issystem1 = (item1.applicationinfo.flags & applicationinfo.flag_system) != 0;                         boolean issystem2 = (item2.applicationinfo.flags & applicationinfo.flag_system) != 0;                         return utils.comparebooleans(issystem1, issystem2);                     case sort_installation:                         //sort in decreasing order                         return -item1.date.compareto(item2.date);                     case sort_size:                         return -item1.size.compareto(item2.size);                     default:                         return 0;                 }             }         });     }      /**      * method called each item when has finished retrieving size      * when items have finished, set size sort available in spinner, , invalidate      * main list display sizes in ui.      */     private void onitemfinishedsizeprocess() {         monsizefinisheditemcount ++;          if (monsizefinisheditemcount == mitemlist.size()) {             getactivity().runonuithread(new runnable() {                 @override                 public void run() {                     spinneradapter adapter = (spinneradapter) mspinner.getadapter();                     adapter.notifydatasetchanged();                     madapter.notifydatasetchanged();                 }             });         }     }      class adapter extends baseadapter implements sectionindexer {          class viewholder {             imageview icon;             textview label;             textview packagename;             textview version;             textview issystemapp;             textview date;             textview size;             iconasynctask iconloader;         }          string sections = "abcdefghijklmnopqrstuvwxyz";          @override         public int getcount() {             return mitemlist.size();         }          @override         public object getitem(int i) {             return mitemlist.get(i);         }          @override         public long getitemid(int i) {             return i;         }          @override         public view getview(int i, view view, viewgroup viewgroup) {             viewholder holder;             if (view == null) {                 view = mlayoutinflater.inflate(r.layout.main_list_item, null);                 holder = new viewholder();                 holder.icon = (imageview) view.findviewbyid(r.id.icon);                 holder.label = (textview) view.findviewbyid(r.id.label);                 holder.packagename = (textview) view.findviewbyid(r.id.packagename);                 holder.version = (textview) view.findviewbyid(r.id.version);                 holder.issystemapp = (textview) view.findviewbyid(r.id.issystem);                 holder.date = (textview) view.findviewbyid(r.id.date);                 holder.size = (textview) view.findviewbyid(r.id.size);                 view.settag(holder);             } else {                 holder = (viewholder) view.gettag();                 holder.iconloader.cancel(true);             }              view.setbackgroundcolor(i % 2 == 0 ? mcolorgrey2 : mcolorgrey1);              item item = mitemlist.get(i);             applicationinfo info = item.applicationinfo;              try {                 packageinfo packageinfo = mpackagemanager.getpackageinfo(info.packagename, 0);                 holder.version.settext(packageinfo.versionname);                 date date = new date(packageinfo.firstinstalltime);                 holder.date.settext(msimpledateformat.format(date));             } catch (packagemanager.namenotfoundexception e) {                 //do nothing             }              holder.iconloader = new iconasynctask(holder.icon, info);             holder.iconloader.execute();              holder.label.settext(info.loadlabel(mpackagemanager));              holder.packagename.settext(info.packagename);              boolean issystemapp = (info.flags & applicationinfo.flag_system) != 0;             holder.issystemapp.settext(issystemapp ? getstring(r.string.system) : getstring(r.string.user));              if (item.size != -1l)                 holder.size.settext(formatter.formatfilesize(getactivity(), item.size));              return view;         }          @override         public int getpositionforsection(int section) {             (int = 0; < this.getcount(); i++) {                 string item = mitemlist.get(i).label;                 if (item.charat(0) == sections.charat(section))                     return i;             }             return 0;         }          @override         public int getsectionforposition(int i) {             return 0;         }          @override         public object[] getsections() {             string[] sectionsarr = new string[sections.length()];             (int = 0; < sections.length(); i++)                 sectionsarr[i] = "" + sections.charat(i);              return sectionsarr;         }          class iconasynctask extends asynctask<void, integer, drawable> {              imageview imageview;             applicationinfo info;              iconasynctask(imageview imageview, applicationinfo info) {                 this.imageview = imageview;                 this.info = info;             }              @override             protected void onpreexecute() {                 super.onpreexecute();                 imageview.setvisibility(view.invisible);             }              @override             protected drawable doinbackground(void... voids) {                 if (!iscancelled())                     return info.loadicon(mpackagemanager);                 return null;             }              @override             protected void onpostexecute(drawable drawable) {                 super.onpostexecute(drawable);                 imageview.setimagedrawable(drawable);                 imageview.setvisibility(view.visible);             }         }     }      class spinneradapter extends baseadapter {          private context mcontext;         private int mlayoutresid;         private string[] mitems;          public spinneradapter(context themedcontext, int arrayresid, int layoutresid) {             mcontext = themedcontext;             mitems = themedcontext.getresources().getstringarray(arrayresid);             mlayoutresid = layoutresid;         }          @override         public int getcount() {             return mitems.length;         }          @override         public object getitem(int i) {             return null;         }          @override         public long getitemid(int i) {             return 0;         }          //it make no sense implement recycled view system because there 5 items in list         @override         public view getview(int i, view view, viewgroup viewgroup) {             view = view.inflate(mcontext, mlayoutresid, null);              if (view instanceof textview)                 ((textview) view).settext(mitems[i]);              return view;         }          /**          * set sort_by_size item disabled if items haven't retrieved them size.          */         @override         public boolean isenabled(int position) {             return position != sort_size || mitemlist != null && monsizefinisheditemcount == mitemlist.size();         }     }      class async extends asynctask<void, async.progress, list<item>> {          class progress {             string label;             int totalsize;         }          @override         protected void onpreexecute() {             super.onpreexecute();             mprogressdialog.show();         }          @override         protected list<item> doinbackground(void... voids) {             list<applicationinfo> applicationinfos = mpackagemanager.getinstalledapplications(packagemanager.get_meta_data);             progress progress = new progress();             progress.totalsize = applicationinfos.size();              list<item> itemlist = new arraylist<item>(applicationinfos.size());             monsizefinisheditemcount = 0;              (applicationinfo applicationinfo : applicationinfos) {                 if (iscancelled())                     break;                 item item = new item();                 item.applicationinfo = applicationinfo;                 string label = applicationinfo.loadlabel(mpackagemanager).tostring();                 item.label = label;                 try {                     item.date = mpackagemanager.getpackageinfo(applicationinfo.packagename, 0).firstinstalltime;                 } catch (packagemanager.namenotfoundexception e) {                     item.date = 0l;                 }                 itemlist.add(item);                  getitemsize(item);                  progress.label = label;                 publishprogress(progress);             }              sortapplicationlist(itemlist, msortby);              return itemlist;         }          private void getitemsize(final item item) {             try {                 method getpackagesizeinfo = mpackagemanager.getclass().getmethod(                         "getpackagesizeinfo", string.class, ipackagestatsobserver.class);                  getpackagesizeinfo.invoke(mpackagemanager, item.applicationinfo.packagename, new ipackagestatsobserver.stub() {                     @override                     public void ongetstatscompleted(final packagestats pstats, boolean succeeded)                             throws remoteexception {                         if (succeeded)                             item.size = pstats.codesize + pstats.cachesize + pstats.datasize                                     + pstats.externalcodesize + pstats.externalcachesize + pstats.externaldatasize                                     + pstats.externalmediasize + pstats.externalobbsize;                         else                             item.size = -1l;                          onitemfinishedsizeprocess();                     }                 });             } catch (nosuchmethodexception e) {                 e.printstacktrace();                 onitemfinishedsizeprocess();             } catch (illegalaccessexception e) {                 e.printstacktrace();                 onitemfinishedsizeprocess();             } catch (invocationtargetexception e) {                 e.printstacktrace();                 onitemfinishedsizeprocess();             }         }          @override         protected void onprogressupdate(progress... values) {             super.onprogressupdate(values);             progress progress = values[0];              mprogressdialog.setmessage(progress.label);             if (mprogressdialog.getmax() == 100)                 mprogressdialog.setmax(progress.totalsize);             mprogressdialog.incrementprogressby(1);         }          @override         protected void onpostexecute(list<item> list) {             super.onpostexecute(list);             mprogressdialog.hide();             ontaskended(list);         }          @override         protected void oncancelled(list<item> list) {             super.oncancelled(list);             mprogressdialog.hide();         }     } } 

in xml have posted,replace tag <fragment> <linearlayout> or <relativelayout> , inside show want display in ui

make sure extend fragment class in fragment activity


Comments

Popular posts from this blog

javascript - Bootstrap Popover: iOS Safari strange behaviour -

Magento/PHP - Get phones on all members in a customer group -

session - Logging Out Using PHP -