java - Custom ArrayAdapter showing a blank screen in my Fragment -
so i've been messing around android little bit , i've run bit of snag. fragment instantiating listofjokestypesadapter reason not displaying listview populated data jokedata class.
all blank screen (no errors or of nature).
this proof of concept thing i've been working on appreciated. why particular custom adapter not working while mainclassadapter working fine.
the code
my joke class:
public class joke { private string jokesetup; private string jokepunchline; public joke(string jokesetup, string jokepunchline) { this.jokesetup = jokesetup; this.jokepunchline = jokepunchline; } public string getjokesetup() { return jokesetup; } public void setjokesetup(string jokesetup) { this.jokesetup = jokesetup; } public string getjokepunchline() { return jokepunchline; } public void setjokepunchline(string jokepunchline) { this.jokepunchline = jokepunchline; } } my jokelistclass
public class jokelistdata { private string listname; private list<joke> arraylistofjokes; public jokelistdata(string listname, list<joke> arraylistofjokes) { this.listname = listname; this.arraylistofjokes = arraylistofjokes; } public string getlistname() { return listname; } public void setlistname(string listname) { this.listname = listname; } public list<joke> getarraylistofjokes() { return arraylistofjokes; } public void setarraylistofjokes(arraylist<joke> arraylistofjokes) { this.arraylistofjokes = arraylistofjokes; } } my actual joke data
public class jokedata { private static list<joke> dogjokes = new arraylist<joke>(){ { add(new joke("dogs", "bark")); add(new joke("dogs", "woof")); add(new joke("dogs", "howl")); add(new joke("dogs", "sniff")); } }; private static list<joke> catjokes = new arraylist<joke> (){ { add(new joke("cats", "woof")); add(new joke("dogs", "meow")); } }; static list<jokelistdata> dataofjokelist = new arraylist<jokelistdata>(); public static void addentries(){ dataofjokelist.add(new jokelistdata("cat jokes", catjokes)); dataofjokelist.add(new jokelistdata("dog jokes", dogjokes)); } } the adapter
public class listofjoketypesadapter extends arrayadapter<jokelistdata> { context mcontext; int mlayoutid; list<jokelistdata> mlist; public listofjoketypesadapter(context context, int resource, list<jokelistdata> objects) { super(context, resource, objects); this.mcontext = context; this.mlayoutid = resource; this.mlist = objects; } @override public int getcount() { return super.getcount(); } @override public view getview(int position, view convertview, viewgroup parent) { viewholder holder = null; if(convertview == null){ layoutinflater inflater = layoutinflater.from(mcontext); convertview = inflater.inflate(mlayoutid,parent,false); holder = new viewholder(); holder.mtextview = (textview) convertview.findviewbyid(r.id.rowformainlist); convertview.settag(holder); }else{ holder = (viewholder) convertview.gettag(); } jokelistdata jokelistdata = mlist.get(position); holder.mtextview.settext(jokelistdata.getlistname()); return convertview; } private static class viewholder{ textview mtextview; } } the fragment utilizes adapter
public class listofjoketypesfragment extends fragment { listview mlistview; listofjoketypesadapter listofjoketypesadapter; @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view view = inflater.inflate(r.layout.joke_type_fragment,container,false); jokedata.addentries(); mlistview = (listview)view.findviewbyid(r.id.joketypelistview); listofjoketypesadapter = new listofjoketypesadapter(getactivity().getapplicationcontext(),r.layout.row,jokedata.dataofjokelist); mlistview.setadapter(listofjoketypesadapter); return view; } } the fragment manager package com.example.taranveer.jokeapplicationactual;
import android.app.activity; import android.os.bundle;
/** * created taranveer on 2014-07-22. */ public class thefragmentactivitymanager extends activity {
@override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.fragment_container); bundle args = getintent().getextras(); if(findviewbyid(r.id.container) != null){ if(args != null){ if(args.getint("randomjoke") == 1){ randomjokefragment randomjokefragment = new randomjokefragment(); getfragmentmanager().begintransaction() .replace(r.id.container, randomjokefragment) .commit(); } } } if(findviewbyid(r.id.container) != null){ if(args!=null){ if(args.getint("listofjoketypes") == 2){ listofjoketypesfragment listofjoketypesfragment = new listofjoketypesfragment(); getfragmentmanager().begintransaction() .replace(r.id.container,listofjoketypesfragment) .commit(); } } } } } the relevant xml:
joke_type_fragment.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"> <listview android:id="@+id/joketypelistview" android:layout_width="match_parent" android:layout_height="match_parent"> </listview> </linearlayout> row.xml
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> <linearlayout android:layout_margin="5dp" android:gravity="center_vertical" android:background="#000000" android:layout_width="match_parent" android:layout_height="wrap_content"> <textview android:textcolor="#eeeeee" android:textstyle="bold" android:layout_margin="5dp" android:padding="5dp" android:background="#2299dd" android:textsize="20sp" android:text="main activity items" android:gravity="center" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/rowformainlist"/> </linearlayout> </linearlayout>
better put these lines jokelistdata jokelistdata = mlist.get(position);
holder.mtextview.settext(jokelistdata.getlistname()); inside if(convertview == null) condition
Comments
Post a Comment