java - How to display listView in fragment class? -
i'm new in android programming. want try make simple tab layout app using fragment, how display listview in fragment? , i,ve googling , find solution not using fragment class. can show webview how show listview
my tab1 class:
public class tab1 extends fragment { webview webview; @override public void onactivitycreated(bundle savedinstancestate) { super.onactivitycreated(savedinstancestate); // url open // set webview webview = (webview) getview().findviewbyid(r.id.webview); webview.setwebviewclient(new mybrowser()); webview.getsettings().setloadsimagesautomatically(true); webview.getsettings().setjavascriptenabled(true); webview.setscrollbarstyle(view.scrollbars_inside_overlay); webview.loadurl("http://www.google.com"); } @override public view oncreateview(layoutinflater inflater, @nullable viewgroup container, @nullable bundle savedinstancestate) { view v =inflater.inflate(r.layout.tab_1,container,false); return v; } private class mybrowser extends webviewclient { @override public boolean shouldoverrideurlloading(webview view, string url) { view.loadurl(url); return true; } } }
my tab2 class ( want display listview here):
public class tab2 extends fragment { @override public void onactivitycreated(bundle savedinstancestate) { super.onactivitycreated(savedinstancestate); // listview activity needs extend activity class, doesn't work in fragment, how display in fragment? } @override public view oncreateview(layoutinflater inflater, @nullable viewgroup container, @nullable bundle savedinstancestate) { view v = inflater.inflate(r.layout.tab_2, container, false); return v; } }
fragment adapter:
public class viewpageradapter extends fragmentstatepageradapter {
charsequence titles[]; // store titles of tabs going passed when viewpageradapter created int numboftabs; // store number of tabs, passed when viewpageradapter created // build constructor , assign passed values appropriate values in class public viewpageradapter(fragmentmanager fm,charsequence mtitles[], int mnumboftabsumb) { super(fm); this.titles = mtitles; this.numboftabs = mnumboftabsumb; } //this method return fragment every position in view pager @override public fragment getitem(int position) { if(position == 0) // if position 0 returning first tab { tab1 tab1 = new tab1(); return tab1; } else //if (position == 1) // having 2 tabs if position 0 must 1 returning second tab { tab2 tab2 = new tab2(); return tab2; } // else // { // newkasus newkasus = new newkasus(); // return newkasus; // } } // method return titles tabs in tab strip @override public charsequence getpagetitle(int position) { return titles[position]; } // method return number of tabs tabs strip @override public int getcount() { return numboftabs; } }
my mainactivity:
public class mainactivity extends actionbaractivity { // // declaring view , variables toolbar toolbar; viewpager pager; viewpageradapter adapter; slidingtablayout tabs; charsequence titles[]={"berita","kasus","add kasus"}; int numboftabs =3; // // bawaaan materal tab @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); // creating toolbar , setting toolbar activity toolbar = (toolbar) findviewbyid(r.id.tool_bar); setsupportactionbar(toolbar); // creating viewpageradapter , passing fragment manager, titles fot tabs , number of tabs. adapter = new viewpageradapter(getsupportfragmentmanager(),titles,numboftabs); // assigning viewpager view , setting adapter pager = (viewpager) findviewbyid(r.id.pager); pager.setadapter(adapter); // assiging sliding tab layout view tabs = (slidingtablayout) findviewbyid(r.id.tabs); tabs.setdistributeevenly(true); // make tabs fixed set true, makes tabs space evenly in available width // setting custom color scroll bar indicator of tab view tabs.setcustomtabcolorizer(new slidingtablayout.tabcolorizer() { @override public int getindicatorcolor(int position) { return getresources().getcolor(r.color.tabsscrollcolor); } }); // setting viewpager slidingtabslayout tabs.setviewpager(pager); } @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) { // handle action bar item clicks here. action bar // automatically handle clicks on home/up button, long // specify parent activity in androidmanifest.xml. int id = item.getitemid(); //noinspection simplifiableifstatement if (id == r.id.action_settings) { return true; } return super.onoptionsitemselected(item); } }
here giving simple example of showing list in fragment.
your fragment first...
public class tab1 extends listfragment { string[] list_items; tab1(){ } @override public view oncreateview(layoutinflater inflater, @nullable viewgroup container, @nullable bundle savedinstancestate) { view rootview =inflater.inflate(r.layout.tab_1,container,false); list_items= getresources().getstringarray(r.array.list); setlistadapter(new arrayadapter(getactivity(),android.r.layout.simple_list_item_1,list_items); return rootview; } }
in strings.xml
<string-array name="list"> <item>item1</item> <item>item1</item> <item>item1</item> <item>item1</item> <item>item1</item> </string-array>
your tab_1 layout have have.. listview. id android:list necessary when extend fragment listfragment class. if extend fragment won't need add specific id android:list.
for example giving need following in layout...
<listview android:id="@id/android:list" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#00ff00" android:layout_weight="1" />
this need create listview in fragment.
in case, data in array , pass in listview. here in example used locally. hope helps!
Comments
Post a Comment