android - Getting Error while display array-list from strings xml file on tab 1 -
i trying access array data string.xml file , display on tab 1. code working fine when working without tab fragment.
when trying array list in tab 1 getting error in main activity have mentioned in main activity code line. have menu code working fine that's why didn't mention menu directory code. adding screenshot want display in tab 1.
here tab1_fragment.xml code:
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="2dp"> <imageview android:id="@+id/profile_pic" android:layout_width="70dp" android:layout_height="70dp" android:contentdescription="desc" android:paddingleft="10dp" android:paddingright="10dp"/> <textview android:id="@+id/member_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margintop="10dp" android:layout_torightof="@+id/profile_pic" android:paddingbottom="10dp" android:text="txt" android:textsize="20sp"/> <textview android:id="@+id/status" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignleft="@+id/member_name" android:layout_below="@+id/member_name" android:text="txt" android:textsize="16sp"/> <textview android:id="@+id/contact_type" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignbaseline="@+id/member_name" android:layout_alignbottom="@+id/member_name" android:layout_margin="10dp" android:layout_alignparentright="true" android:text="txt" android:textsize="16sp"/> </relativelayout>
here main activity code getting error i.e incomplete types:
import android.content.res.typedarray; import android.support.design.widget.floatingactionbutton; import android.support.design.widget.snackbar; import android.support.design.widget.tablayout; import android.support.v4.app.fragmentmanager; import android.support.v7.app.appcompatactivity; import android.support.v7.widget.toolbar; import android.support.v4.app.fragment; import android.support.v4.app.fragmentpageradapter; import android.support.v4.view.viewpager; import android.os.bundle; import android.view.menu; import android.view.menuitem; import android.view.view; public class mainactivity extends appcompatactivity { private sectionspageradapter msectionspageradapter; private viewpager mviewpager; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); toolbar toolbar = (toolbar) findviewbyid(r.id.toolbar); setsupportactionbar(toolbar); // create adapter return fragment each of 3 // primary sections of activity. msectionspageradapter = new sectionspageradapter(getsupportfragmentmanager()); // set viewpager sections adapter. mviewpager = (viewpager) findviewbyid(r.id.container); mviewpager.setadapter(msectionspageradapter); tablayout tablayout = (tablayout) findviewbyid(r.id.tabs); tablayout.setupwithviewpager(mviewpager); floatingactionbutton fab = (floatingactionbutton) findviewbyid(r.id.fabchat); fab.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { snackbar.make(view, "replace own action", snackbar.length_long) .setaction("action", null).show(); } }); } @override public boolean oncreateoptionsmenu(menu menu) { return true; } @override public boolean onoptionsitemselected(menuitem item) { int id = item.getitemid(); if (id == r.id.action_settings) { return true; } return super.onoptionsitemselected(item); } public class sectionspageradapter extends fragmentpageradapter { public sectionspageradapter(fragmentmanager fm) { super(fm); } @override public fragment getitem(int position) { switch (position) { case 0: **tab1fragment tab1 = new tab1fragment();** return tab1; case 1: tab2fragment tab2 = new tab2fragment(); return tab2; case 2: tab3fragment tab3 = new tab3fragment(); return tab3; default: return null; } } @override public int getcount() { // show 3 total pages. return 3; } @override public charsequence getpagetitle(int position) { switch (position) { case 0: return "calls"; case 1: return "chat"; case 2: return "status"; } return null; } } }
here tab1fragment.java code:
import android.content.res.typedarray; import android.os.bundle; import android.support.annotation.nullable; import android.support.v4.app.fragment; import android.support.v7.app.actionbar; import android.support.v7.app.appcompatactivity; import android.view.layoutinflater; import android.view.menu; import android.view.menuinflater; import android.view.view; import android.view.viewgroup; import android.widget.adapterview; import android.widget.listview; import android.widget.toast; import java.util.arraylist; import java.util.list; import static com.example.aiqba.tabfragments.r.id.container; [enter image description here][1] public class tab1fragment extends appcompatactivity implements adapterview.onitemclicklistener { string[] member_names; typedarray profile_pics; string[] statues; string[] contacttype; list<rowitem> rowitems; listview mylistview; public void actionbar() { actionbar actionbar = getsupportactionbar(); // actionbar.setlogo(r.drawable.whatsapp_icon); //actionbar.setdisplayuselogoenabled(true); actionbar.setdisplayshowhomeenabled(true); } @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); actionbar(); rowitems = new arraylist<rowitem>(); member_names = getresources().getstringarray(r.array.member_names); profile_pics = getresources().obtaintypedarray(r.array.profile_pics); statues = getresources().getstringarray(r.array.status); contacttype = getresources().getstringarray(r.array.contact_type); (int = 0; < member_names.length; i++) { rowitem item = new rowitem(member_names[i], profile_pics.getresourceid(i, -1), statues[i], contacttype[i]); rowitems.add(item); } mylistview = (listview) findviewbyid(r.id.listview); customadapter adapter = new customadapter(this, rowitems); mylistview.setadapter(adapter); profile_pics.recycle(); mylistview.setonitemclicklistener(this); } @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { string member_name = rowitems.get(position).getmember_name(); toast.maketext(getapplicationcontext(), "" + member_name, toast.length_short).show(); } @override public boolean oncreateoptionsmenu(menu menu) { menuinflater menuinflater = getmenuinflater(); menuinflater.inflate(r.menu.menu_main, menu); return super.oncreateoptionsmenu((menu) this); } // new code end @nullable public view oncreateview (layoutinflater inflater, @nullable viewgroup container, @nullable bundle savedinstancestate){ view rootview = inflater.inflate(r.layout.tab1_fragment, container, false); return rootview; } }
here activity_main.xml code :
<android.support.design.widget.coordinatorlayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/main_content" android:layout_width="match_parent" android:layout_height="match_parent" android:fitssystemwindows="true" tools:context="com.example.aiqba.tabfragments.mainactivity"> <android.support.design.widget.appbarlayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingtop="@dimen/appbar_padding_top" android:theme="@style/apptheme.appbaroverlay"> <android.support.v7.widget.toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionbarsize" android:background="?attr/colorprimary" app:layout_scrollflags="scroll|enteralways" app:popuptheme="@style/apptheme.popupoverlay"> </android.support.v7.widget.toolbar> <android.support.design.widget.tablayout android:id="@+id/tabs" android:layout_height="fill_parent" android:layout_width="fill_parent" app:tabgravity="fill"/> </android.support.design.widget.appbarlayout> <android.support.v4.view.viewpager android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> <android.support.design.widget.floatingactionbutton android:id="@+id/fabchat" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end|bottom" android:layout_margin="@dimen/fab_margin" android:src="@drawable/ic_chat_white_24dp" android:visibility="gone"/> <android.support.design.widget.floatingactionbutton android:id="@+id/fabcall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end|bottom" android:layout_margin="@dimen/fab_margin" android:src="@drawable/ic_chat_white_24dp" /> <android.support.design.widget.floatingactionbutton android:id="@+id/fabstatus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end|bottom" android:layout_margin="@dimen/fab_margin" android:src="@drawable/ic_search_white_24dp" android:visibility="gone" /> </android.support.design.widget.coordinatorlayout>
here list_view.xml code:
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <listview android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="match_parent" /> </linearlayout>
here strings.xml code:
<resources> <string name="app_name">tab fragments</string> <string name="action_settings">settings</string> <string name="section_format">hello world section: %1$d</string> <string-array name="member_names"> <item> yo bro</item> <item> hey baby</item> <item>yo man</item> <item>wassup bro</item> <item>hello yup</item> <item>yeah</item> <item>yuppy</item> <item>tune</item> <item>apple</item> <item>samsung</item> </string-array> <array name="profile_pics"> <item>@mipmap/ic_launcher</item> <item>@mipmap/ic_launcher</item> <item>@mipmap/ic_launcher</item> <item>@mipmap/ic_launcher</item> <item>@mipmap/ic_launcher</item> <item>@mipmap/ic_launcher</item> <item>@mipmap/ic_launcher</item> <item>@mipmap/ic_launcher</item> <item>@mipmap/ic_launcher</item> <item>@mipmap/ic_launcher</item> </array> <string-array name="status"> <item>available</item> <item>avail</item> <item>low</item> <item>hai</item> <item>mera</item> <item>battery</item> <item>kya</item> <item>karu</item> <item>mai</item> <item>bato</item> </string-array> <string-array name="contact_type"> <item>mobile</item> <item>work</item> <item>home</item> <item>office</item> <item>client</item> <item>work</item> <item>land line</item> <item>home</item> <item>yuhi</item> <item>apna</item> </string-array> </resources>
here rowitem.java code:
public class rowitem { private string member_name; private int profile_pic_id; private string status; private string contacttype; public rowitem(string member_name, int profile_pic_id, string status, string contacttype) { this.member_name = member_name; this.profile_pic_id = profile_pic_id; this.status = status; this.contacttype = contacttype; } public string getmember_name() { return member_name; } public void setmember_name(string member_name) { this.member_name = member_name; } public int getprofile_pic_id() { return profile_pic_id; } public void setprofile_pic_id(int profile_pic_id) { this.profile_pic_id= profile_pic_id; } public string getstatus() { return status; } public void setstatus(string status){ this.status = status; } public string getcontacttype(){ return contacttype; } public void setcontacttype(string contacttype){ this.contacttype = contacttype; } }
here customadapter.java code:
import android.content.context; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.baseadapter; import android.widget.imageview; import android.widget.textview; import java.util.list; public class customadapter extends baseadapter { context context; list<rowitem> rowitems; customadapter(context context, list<rowitem>rowitems){ this.context = context; this.rowitems = rowitems; } @override public int getcount() { return rowitems.size(); } @override public object getitem(int position) { return rowitems.get(position); } @override public long getitemid(int position) { return rowitems.indexof(getitem(position)); } private class viewholder { imageview profile_pic; textview member_name; textview status; textview contacttype; } @override public view getview(int position, view convertview, viewgroup parent) { viewholder holder = null; layoutinflater minflater = (layoutinflater) context.getsystemservice(mainactivity.layout_inflater_service); holder = new viewholder(); if (convertview == null){ convertview = minflater.inflate(r.layout.tab1_fragment, null); holder.member_name = (textview) convertview.findviewbyid(r.id.member_name); holder.profile_pic = (imageview)convertview.findviewbyid(r.id.profile_pic); holder.status = (textview)convertview.findviewbyid(r.id.status); holder.contacttype = (textview)convertview.findviewbyid(r.id.contact_type); convertview.settag(holder); }else { holder = (viewholder)convertview.gettag(); } rowitem row_pos = rowitems.get(position); holder.profile_pic.setimageresource(row_pos.getprofile_pic_id()); holder.member_name.settext(row_pos.getmember_name()); holder.status.settext(row_pos.getstatus()); holder.contacttype.settext(row_pos.getcontacttype()); return convertview; } }
here error:
error:(117, 28) error: incompatible types: tab1fragment cannot converted fragment error:execution failed task ':app:compiledebugjavawithjavac'. > compilation failed; see compiler error output details.
Comments
Post a Comment