android - List View Not getting populated and getview not getting called -


hello making music player , in main activity have 3 fragments , below fragment have linear layout show name , image of current song.

now problem in 1st fragment list view not getting populated because getview not getting called.

logcat showing no errors not getting populated.

mainactivity.java

package com.example.scrolltabs;  import java.util.arraylist;  import android.content.contentresolver; import android.database.cursor; import android.os.bundle; import android.provider.mediastore; import android.support.v4.app.fragment; import android.support.v4.app.fragmentactivity; import android.support.v4.app.fragmentmanager; import android.support.v4.app.fragmentstatepageradapter; import android.support.v4.view.viewpager; import android.util.log;  import com.example.scrolltabs.fragmenta; import com.example.scrolltabs.fragmentb; import com.example.scrolltabs.fragmentc;   public class mainactivity extends fragmentactivity {      viewpager viewpager=null;      static arraylist<string> data ;     static arraylist<string> artist ;     static arraylist<string> album ;     static arraylist<string> title ;     static arraylist<string> displayname ;      @override     protected void oncreate(bundle arg0) {         // todo auto-generated method stub         super.oncreate(arg0);         setcontentview(r.layout.activity_main);          data = new arraylist<string>();         artist = new arraylist<string>();         album = new arraylist<string>();         title = new arraylist<string>();         displayname = new arraylist<string>();           getmycursor();          viewpager=(viewpager) findviewbyid(r.id.pager);          fragmentmanager fm=getsupportfragmentmanager();          viewpager.setadapter(new myadapter(fm));     }      public static arraylist<string> getdataarraylist()     {         return data;     }      public static arraylist<string> getartistarraylist()     {         return artist;     }      public static arraylist<string> getalbumarraylist()     {         return album;     }      public static arraylist<string> gettitlearraylist()     {         return title;     }      public static arraylist<string> getdisplaynamearraylist()     {         return displayname;     }       public cursor getmycursor()     {         log.v("jay","sav pela");          /*  string[] columns = { android.provider.mediastore.audio.albums._id,                 android.provider.mediastore.audio.albums.album };          cursor cursor = getcontentresolver().query(                 mediastore.audio.albums.external_content_uri, columns, null,                 null, null);          if (cursor.movetofirst()) {             {            string[] column = { mediastore.audio.media.data,                 mediastore.audio.media._id, mediastore.audio.media.title,                 mediastore.audio.media.display_name,                 mediastore.audio.media.mime_type,                 mediastore.audio.media.album,                 mediastore.audio.media.artist,         };          string = android.provider.mediastore.audio.media.album + "=?";            string orderby = android.provider.mediastore.audio.media.title;          cursor cursor = getcontentresolver().query(mediastore.audio.media.external_content_uri,                 column,null,null, orderby);          int songcount=0;         if (cursor.movetofirst()) {             {                 songcount++;                  string s_title =cursor.getstring(cursor.getcolumnindex(mediastore.audio.media.title));                 title.add(s_title);                  string s_displayname=cursor.getstring(cursor.getcolumnindex(mediastore.audio.media.display_name));                 displayname.add(s_displayname);                  string s_data=cursor.getstring(cursor.getcolumnindex(mediastore.audio.media.data));                 data.add(s_data);                  string s_album=cursor.getstring(cursor.getcolumnindex(mediastore.audio.media.album));                 album.add(s_album);                  string s_artist=cursor.getstring(cursor.getcolumnindex(mediastore.audio.media.artist));                 artist.add(s_artist);                 } while (cursor.movetonext());         }          log.v("jay",songcount+"");          return cursor;     }    }  class myadapter extends fragmentstatepageradapter {      public myadapter(fragmentmanager fm) {         super(fm);         // todo auto-generated constructor stub     }      @override     public fragment getitem(int arg0) {         fragment fragment=null;          if(arg0==0)         {             fragment= new fragmenta();         }         else if(arg0==1)         {             fragment=new fragmentb();         }         else if(arg0==2)         {             fragment=new fragmentc();         }         return fragment;     }      @override     public int getcount() {         // todo auto-generated method stub         return 3;     }      @override     public charsequence getpagetitle(int position) {         if(position==0)         {             return "all songs";         }         else if(position==1)         {             return "tab2";          }         else if(position==2)         {             return "tab3";         }         return null;     } } 

activity_main.xml layout

<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:orientation="vertical"       >     <android.support.v4.view.viewpager          android:layout_height="match_parent"         xmlns:android="http://schemas.android.com/apk/res/android"         android:layout_width="match_parent"         android:id="@+id/pager"         android:layout_weight="2"         >      <android.support.v4.view.pagertitlestrip         android:layout_height="wrap_content"         android:layout_width="match_parent"         android:background="#000000"         android:id="@+id/title"         android:layout_gravity="top"         android:paddingtop="20dp"         android:paddingbottom="4dp"         android:textcolor="#ffffff"         >      </android.support.v4.view.pagertitlestrip> </android.support.v4.view.viewpager>       <linearlayout         android:layout_width="match_parent"         android:layout_height="100dp"         android:layout_weight="1"         android:background="#5edfe5"         android:clickable="true"         android:orientation="horizontal" >      <imageview         android:id="@+id/imageview1"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_gravity="left|center"         android:contentdescription="albumart"         android:src="@android:drawable/ic_media_play" />      <textview         android:id="@+id/textview1"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_gravity="left|center"         android:gravity="center"         android:text="textview" />  </linearlayout>  </linearlayout> 

fragmenta.java

package com.example.scrolltabs;  import java.util.arraylist; import android.content.context; import android.os.bundle; import android.support.annotation.nullable; import android.support.v4.app.fragment; import android.support.v4.app.listfragment; import android.util.log; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.arrayadapter; import android.widget.listview; import android.widget.textview;  public class fragmenta extends listfragment {      view view=null;        @override     public view oncreateview(layoutinflater inflater,             @nullable viewgroup container, @nullable bundle savedinstancestate) {         // todo auto-generated method stub         view rootview = inflater.inflate(r.layout.fragmentlayout1,container,false);         view=rootview;         return rootview;     }      @override     public void onactivitycreated(@nullable bundle savedinstancestate) {         // todo auto-generated method stub         super.onactivitycreated(savedinstancestate);          log.v("jay","onactivitycreated");          listview listview = (listview) view.findviewbyid(android.r.id.list) ;          mylistadapter adapter = new mylistadapter(getactivity().getapplicationcontext(),r.layout.fragmentlayout1);          listview.setadapter(adapter);      }  }  class mylistadapter extends arrayadapter<string>{      arraylist<string> data ;     arraylist<string> artist ;     arraylist<string> album ;     arraylist<string> title ;     arraylist<string> displayname ;      public mylistadapter(context applicationcontext, int fragmentlayout1) {         // todo auto-generated constructor stub         super(applicationcontext, fragmentlayout1);         log.v("jay","in adapter");         data=com.example.scrolltabs.mainactivity.getdataarraylist();         artist=com.example.scrolltabs.mainactivity.getartistarraylist();         album=com.example.scrolltabs.mainactivity.getalbumarraylist();         title=com.example.scrolltabs.mainactivity.gettitlearraylist();         displayname=com.example.scrolltabs.mainactivity.getdisplaynamearraylist();        }      @override     public view getview(int position, view convertview, viewgroup parent) {         log.v("jay","in view");         layoutinflater inf = (layoutinflater) convertview.getcontext().getsystemservice(convertview.getcontext().layout_inflater_service);         view row = inf.inflate(r.layout.peritem, parent, false);          textview title_tv = (textview) row.findviewbyid(r.id.titletextview);         textview artist_tv = (textview) row.findviewbyid(r.id.artisttextview);          title_tv.settext(title.get(position));         artist_tv.settext(artist.get(position));            return row;      }  } 

fragmentlayout1.xml fragment 1's layout

<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:orientation="vertical" >      <listview         android:id="@android:id/list"         android:layout_width="match_parent"         android:layout_height="match_parent"         android:layout_centerhorizontal="true"         android:layout_centervertical="true" >     </listview>  </linearlayout> 

per_item.xml (layout each item in list in fragment 1)

<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:orientation="vertical" >      <textview         android:id="@+id/titletextview"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:text="large text"         android:textappearance="?android:attr/textappearancelarge" />      <textview         android:id="@+id/artisttextview"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:text="small text"         android:textappearance="?android:attr/textappearancesmall" />  </linearlayout> 

when initialize mylistadapter, using constructor. second argument resource id:

the resource id layout file containing textview use when instantiating views. don't need this, because inflate item view manually:

view row = inf.inflate(r.layout.peritem, parent, false);  

try use this:

super(context, 0, data); 

upd. try in mylistadapter constructor:

super(context, 0); 

upd. 2 try setlistadapter(adapter) instead of listview.setadapter(adapter);

upd. 3 android docs:

you must use listfragment.setlistadapter() associate list adapter. not directly call listview.setadapter() or else important initialization skipped.


Comments

Popular posts from this blog

java - How to specify maven bin in eclipse maven plugin? -

single sign on - Logging into Plone site with credentials passed through HTTP -

php - Why does AJAX not process login form? -