android - when Selecting dynamic Tabs Recycler view not showing -
i'm having parent fragment class name "startupfragement" conatains dynamic tab more 20 .when i'm swiping tab recycler view list show when select tab (for eg 'm on position 1 , select 3 not showing recycler view list)
i'm getting message 3 times "e/recyclerview: no adapter attached; skipping layout"
public class startupfragement extends fragment implements view.onclicklistener { @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view rootview = inflater.inflate(r.layout.fragment_startup, container, false); search_listview = (listview) rootview.findviewbyid(r.id.search_listview); searchadapter = new searchcompanyadpter(mactivity, searchedarray,"startup"); search_listview.setadapter(searchadapter); tab1fragemnt.firsttime=0; notificationivisible=false; progressbar(); iscurrentfragment = true; viewpager_new = (viewpager) rootview.findviewbyid(r.id.viewpager_new); setupviewpagerstrup(viewpager_new); tab_scrollable = (tablayout) rootview.findviewbyid(r.id.tab_scrollable); tab_scrollable.setupwithviewpager(viewpager_new); edt_search = (edittext) rootview.findviewbyid(r.id.edt_search); btn_search = (button) rootview.findviewbyid(r.id.btn_search); btn_search.setonclicklistener(this); notification_linearlayout = (linearlayout) rootview.findviewbyid(r.id.notification_linearlayout); notification_linearlayout.setonclicklistener(this); cancel_search = (button) rootview.findviewbyid(r.id.cancel_search); cancel_search.setonclicklistener(this); int tab_position = startupfragement.tab_scrollable.getselectedtabposition(); if(tab_position>=0) { titlename = (string) startupfragement.viewpager_new.getadapter().getpagetitle(tab_position); } return rootview; } private void progressbar() { progress_bar_startup_dialog=new dialog(mactivity); progress_bar_startup_dialog.requestwindowfeature (window.feature_no_title); progress_bar_startup_dialog.setcontentview (r.layout.dialog_progress); progress_bar_startup_dialog.getwindow ().setbackgrounddrawableresource (android.r.color.transparent); progress_bar_startup_dialog.setcancelable(false); } private void setupviewpagerstrup(viewpager viewpagerstatup) { adapterstrup = new pagerstateadapter(getchildfragmentmanager()); viewpagerstatup.setadapter(adapterstrup); if (industries.size() > 1 ) { tab1fragemnt.tab_position = 0; set<string> arr = industries.keyset(); arraylist<string> industryname = new arraylist<string>(arr); adapterstrup.addfragment(new tab1fragemnt(), "latest"); (int = 0; < industryname.size(); i++) { if(!industryname.get(i).equals("latest")) adapterstrup.addfragment(new tab1fragemnt(), industryname.get(i)); //tab1fragemnt.tabdata.put(titlename, new arraylist<feedmodel>()); } } adapterstrup.notifydatasetchanged(); } *@override public void onclick(view v) { switch (v.getid()) { case r.id.btn_search: btn_search.setvisibility(view.gone); cancel_search.setvisibility(view.visible); edt_search.setvisibility(view.visible); edt_search.requestfocus(); inputmethodmanager imm = (inputmethodmanager) mactivity.getsystemservice(context.input_method_service); imm.showsoftinput(edt_search, inputmethodmanager.show_implicit); break; case r.id.notification_linearlayout: if(!notificationivisible) { sortbydialog.show(); notificationivisible=true; } else { notificationivisible=false; sortbydialog.dismiss(); } break; case r.id.cancel_search: btn_search.setvisibility(view.visible); cancel_search.setvisibility(view.gone); edt_search.settext(""); edt_search.setvisibility(view.gone); view view = mactivity.getcurrentfocus(); if (view != null) { inputmethodmanager = (inputmethodmanager) mactivity.getsystemservice(context.input_method_service); i.hidesoftinputfromwindow(view.getwindowtoken(), 0); } previoussearchstring = ""; searchstring = ""; if (!searchdataarray.isempty()) { searchdataarray.clear(); } if (!searchedarray.isempty()) { searchedarray.clear(); } issearchcompany = false; search_listview.setvisibility(view.gone); tab_scrollable.setvisibility(view.visible); viewpager_new.setvisibility(view.visible); break; } } @override public void ondestroy() { super.ondestroy(); } @override public void onattach(activity activity) { super.onattach(activity); mactivity = activity; } }* public class tab1fragemnt extends fragment {
recyclerview following_recycleview; jsonobject object = null; fragmentactivity mactivity; startupadapter madapter; string titlename = ""; static int tab_position = 0; static int firsttime=0; public static hashmap<string, arraylist<feedmodel>> tabdata = new hashmap<string, arraylist<feedmodel>>(); dialog progress_bar_dialog; string industry_id=""; // textview text; @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { // view rootview = inflater.inflate(r.layout.fragment_tab1, container, false); view rootview = inflater.inflate(r.layout.fragment_tab1,null); following_recycleview = (recyclerview) rootview.findviewbyid(r.id.followcompany_recycler_view); //text=(textview)rootview.findviewbyid(r.id.settitle); //following_recycleview.setlayoutmanager(new linearlayoutmanager(getcontext(), linearlayoutmanager.vertical, false)); int spacinginpixels = 10; following_recycleview.additemdecoration(new spacesitemdecoration(spacinginpixels)); changeviewpager(); if(firsttime==0) { progressbar(); } else { progressbar(); } if(tab_position==0) { setlist(); } mactivity.getsupportfragmentmanager().addonbackstackchangedlistener(new fragmentmanager.onbackstackchangedlistener() { @override public void onbackstackchanged() { if(madapter != null) { madapter.notifydatasetchanged(); } } }); return rootview; } private void progressbar() { if(progress_bar_dialog != null) { if(progress_bar_dialog.isshowing()) { progress_bar_dialog.dismiss(); } } progress_bar_dialog=new dialog(mactivity); progress_bar_dialog.requestwindowfeature (window.feature_no_title); progress_bar_dialog.setcontentview (r.layout.dialog_progress); progress_bar_dialog.getwindow ().setbackgrounddrawableresource (android.r.color.transparent); progress_bar_dialog.setcancelable(false); } private void changeviewpager() { startupfragement.tab_scrollable.setontabselectedlistener(new tablayout.ontabselectedlistener() { @override public void ontabselected(tablayout.tab tab) { log.e("tabposi",string.valueof(tab.getposition())); tab_position = tab.getposition(); startupfragement.viewpager_new.setcurrentitem(tab_position,true); setlist(); } @override public void ontabunselected(tablayout.tab tab) { } @override public void ontabreselected(tablayout.tab tab) { tab_position = tab.getposition(); startupfragement.viewpager_new.setcurrentitem(tab_position); } }); } private class json_parse extends asynctask<string,string,string> { string tag = ""; @override protected void onpreexecute() { } @override protected string doinbackground(string... params) { //string val= serverurl.feedlist(loginacitivty.this); tag = params[0]; string val = ""; if (tag.equals(constants.latest_company_list)) { val = serverurl.latestcompany(mactivity,20); } else if (tag.equals(constants.other_latest_company_list)) { val = serverurl.companylatestcategorieslist(mactivity,industry_id); } return val; } @override protected void onpostexecute(string values) { try { if(values!="") { if(tag.equals(constants.latest_company_list)) { object=null; object= new jsonobject(values); object=object.getjsonobject("data"); jsonarray json=object.getjsonarray("companies"); if(json!=null) { if (firsttime == 1) { firsttime = 2; if (progress_bar_dialog == null) { progressbar(); } progress_bar_dialog.show(); } (int k = 0; k < json.length(); k++) { object=json.getjsonobject(k); // jsonobject json = object; string doc = object.getstring("_id"); boolean check = true; string industrytypename = "latest"; arraylist<feedmodel> feed = new arraylist<feedmodel>(); if (tabdata.isempty()) { check = false; } else { feedmodel d = null; if (tabdata.get(industrytypename) != null) { feed = tabdata.get(industrytypename); (int = 0; < feed.size(); i++) { d = (feedmodel) feed.get(i); if ((d.getdocumentid()).equals(doc)) { check = false; break; } } } /*else { tabdata.put(industrytypename, new arraylist<feedmodel>()); }*/ } if (check) { feedmodel model = new feedmodel(); model.setdocumentid(doc); if (object.has("slug")) { model.setslug(object.getstring("slug")); } else { model.setslug(""); } model.setcompanyname(object.getstring("name")); if (object.has("valuation")) { model.setcompanyvaluation(utlis.truncatenumber(object.getstring("valuation"))); } else { model.setcompanyvaluation(""); } feed.add(model); tabdata.put(industrytypename, feed); } } if(tabdata.get(titlename) != null) { collections.sort(tabdata.get(titlename), new comparator<feedmodel>() { public int compare(feedmodel s1, feedmodel s2) { return s1.getcompanyname().comparetoignorecase(s2.getcompanyname()); } }); } // setlistadapter(); following_recycleview.removeallviews(); following_recycleview.invalidate(); // madapter=null; madapter = new startupadapter(mactivity, tabdata.get(titlename)); following_recycleview.setadapter(madapter); if(madapter!=null) madapter.notifydatasetchanged(); if (progress_bar_dialog.isshowing()) { progress_bar_dialog.dismiss(); } } } else if (tag.equals(constants.other_latest_company_list)) { object=null; object= new jsonobject(values); object=object.getjsonobject("data"); jsonarray json=object.getjsonarray("companies"); if(json!=null) { for(int k=0;k<json.length();k++) { //for except latest // if users have companies list //industry name object=json.getjsonobject(k); boolean check = true; string doc = object.getstring("_id"); // jsonobject obj = object; string industrytypename = ""; arraylist<feedmodel> feed = new arraylist<feedmodel>(); if (object.has("industry")) { // jsonobject js = new jsonobject(obj.getstring("industry")); jsonobject js = object.getjsonobject("industry"); if (js.has("name")) { industrytypename = js.getstring("name"); } } if (tabdata.isempty()) { check = false; } else { if (tabdata.get(industrytypename) != null) { feed = tabdata.get(industrytypename); (int = 0; < feed.size(); i++) { feedmodel d = null; d = (feedmodel) feed.get(i); if ((d.getdocumentid()).equals(doc)) { check = false; break; } } } } if (check) { feedmodel model = new feedmodel(); model.setdocumentid(doc); model.setindustrysectorname(industrytypename); model.setslug(object.getstring("slug")); feed.add(model); tabdata.put(industrytypename, feed); } } if (tabdata.get(titlename) != null) { collections.sort(tabdata.get(titlename), new comparator<feedmodel>() { public int compare(feedmodel s1, feedmodel s2) { return s1.getcompanyname().comparetoignorecase(s2.getcompanyname()); } }); } // madapter=null; following_recycleview.removeallviews(); following_recycleview.invalidate(); // madapter.notifydatasetchanged(); log.e(titlename, "onpostexecute: "+ titlename); log.e("array values", "onpostexecute: "+ tabdata.get(titlename).tostring()); madapter = new startupadapter(mactivity, tabdata.get(titlename)); following_recycleview.setadapter(madapter); if (madapter!=null) madapter.notifydatasetchanged(); if (progress_bar_dialog.isshowing()) { progress_bar_dialog.dismiss(); } } } } else { utlis.showtoastlong("please check network connection",mactivity); if (tag.equals(constants.latest_company_list)) { if (progress_bar_dialog.isshowing()) { progress_bar_dialog.dismiss(); } } else if (tag.equals(constants.other_latest_company_list)) { if (progress_bar_dialog.isshowing()) { progress_bar_dialog.dismiss(); } } } } catch (exception e) { } } } private void checklogin(final boolean isother) { try { if(isother) { new json_parse().execute(constants.other_latest_company_list); } else { new json_parse().execute(constants.latest_company_list); } } catch (exception e) { if(progress_bar_dialog!= null &&progress_bar_dialog.isshowing()) { progress_bar_dialog.dismiss(); } } } private void setlist() { system.gc(); titlename = (string) startupfragement.viewpager_new.getadapter().getpagetitle(tab_position); if (!titlename.equals("latest")) { if(titlename != "latest") { industry_id = startupfragement.industries.get(titlename); } if (titlename.equals("3d printing/scanning")) { titlename = "3d printing"; } following_recycleview.removeallviews(); following_recycleview.invalidate(); // madapter=null; madapter = new startupadapter(mactivity, tabdata.get(titlename)); following_recycleview.setadapter(madapter); if (tabdata.get(titlename)==null || tabdata.get(titlename).isempty()) { try { // if (!isrunning) { // isrunning=true; if (progress_bar_dialog.isshowing()) { progress_bar_dialog.dismiss(); } progress_bar_dialog.show(); if (utlis.checknetworkconnection(mactivity)) { checklogin(true); } else { utlis.showtoastshort(getresources().getstring(r.string.check_netconnection), mactivity); if (progress_bar_dialog.isshowing()) { progress_bar_dialog.dismiss(); } } //} } catch (exception e) { if(progress_bar_dialog!= null &&progress_bar_dialog.isshowing()) { progress_bar_dialog.dismiss(); } following_recycleview.removeallviews(); following_recycleview.invalidate(); if(madapter!=null) madapter.notifydatasetchanged(); } } else { if (progress_bar_dialog.isshowing()) { progress_bar_dialog.dismiss(); } following_recycleview.removeallviews(); following_recycleview.invalidate(); if(madapter!=null) madapter.notifydatasetchanged(); } } else { if (tabdata.get(titlename)==null || tabdata.get(titlename).isempty()) { if(firsttime==0) { firsttime=1; try { if (progress_bar_dialog.isshowing()) { progress_bar_dialog.dismiss(); } progress_bar_dialog.show(); if(utlis.checknetworkconnection(mactivity)) { checklogin(false); } else { utlis.showtoastshort(getresources().getstring(r.string.check_netconnection),mactivity); following_recycleview.removeallviews(); following_recycleview.invalidate(); // madapter=null; madapter = new startupadapter(mactivity, tabdata.get(titlename)); following_recycleview.setadapter(madapter); if(madapter!=null) madapter.notifydatasetchanged(); if (progress_bar_dialog.isshowing()) { progress_bar_dialog.dismiss(); } } } catch (exception e) { if (progress_bar_dialog.isshowing()) { progress_bar_dialog.dismiss(); } } } } else { if (progress_bar_dialog.isshowing()) { progress_bar_dialog.dismiss(); } following_recycleview.removeallviews(); following_recycleview.invalidate(); // madapter=null; madapter = new startupadapter(mactivity, tabdata.get(titlename)); following_recycleview.setadapter(madapter); if(madapter!=null) madapter.notifydatasetchanged(); } } } @override public void onattach(activity activity) { super.onattach(activity); mactivity = getactivity(); } }
Comments
Post a Comment