java - Android - Displaying Custom ArrayAdapter inside ViewPager -


what wanted populate, listview inside viewpager using fragments since main class extends fragmentactivity , fragment not listactivity or should use listfragment? in logcat points mviewpager.setadapter

public class tabs extends fragmentactivity implements actionbar.tablistener {      /**      * {@link android.support.v4.view.pageradapter} provide fragments each of      * 3 primary sections of app. use {@link android.support.v4.app.fragmentpageradapter}      * derivative, keep every loaded fragment in memory. if becomes memory      * intensive, may best switch {@link android.support.v4.app.fragmentstatepageradapter}.      */     appsectionspageradapter mappsectionspageradapter;      /**      * {@link viewpager} display 3 primary sections of app, 1 @      * time.      */     viewpager mviewpager;      @suppresslint("newapi")     @override     public void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.load_main_groups_activty);         db = new databasehandler(this);         mcontext = getbasecontext();          //need not getting null pointer exception          productslist = new  arraylist<hashmap<string, ?>>();          // create adapter return fragment each of 3 primary sections         // of app.         mappsectionspageradapter = new appsectionspageradapter(getsupportfragmentmanager());          // set action bar.         final actionbar actionbar = getactionbar();          // specify home/up button should not enabled, since there no hierarchical         // parent.         actionbar.sethomebuttonenabled(false);         //actionbar.setdisplayshowtitleenabled(false);          // specify displaying tabs in action bar.         actionbar.setnavigationmode(actionbar.navigation_mode_tabs);          // set viewpager, attaching adapter , setting listener when         // user swipes between sections.         mviewpager = (viewpager) findviewbyid(r.id.pager);         mviewpager.setadapter(mappsectionspageradapter); //logacat error: @ line 127         mviewpager.setonpagechangelistener(new viewpager.simpleonpagechangelistener() {             @override             public void onpageselected(int position) {                 // when swiping between different app sections, select corresponding tab.                 // can use actionbar.tab#select() if have reference                 // tab.                 actionbar.setselectednavigationitem(position);             }         });          // each of sections in app, add tab action bar.         (int = 0; < mappsectionspageradapter.getcount(); i++) {             // create tab text corresponding page title defined adapter.             // specify activity object, implements tablistener interface,             // listener when tab selected.             actionbar.addtab(                     actionbar.newtab()                             .settext(mappsectionspageradapter.getpagetitle(i))                             .settablistener(this));         }     } 

    /**      * fragment launches other parts of demo application.      */ public  static class launchpadsectionfragment extends listfragment{            @override         public view oncreateview(layoutinflater inflater, viewgroup container,                 bundle savedinstancestate) {             view rootview = inflater.inflate(r.layout.fragment_section_launchpad, container, false);              holder holder = new holder();           view rootview = inflater.inflate(r.layout.load_main_groups_activty, container, false);          loadallproducts task = new loadallproducts();         task.execute();          mysimplearrayadapter adapter = new mysimplearrayadapter(                 mcontext, productslist,                 r.layout.load_main_groups_listview, foldername);          holder.lv= (listview)rootview.findviewbyid(r.id.listview);          holder.lv.setadapter(adapter);             return rootview;         }   class holder {             listview lv;             viewpager pager;         }           class loadallproducts extends asynctask<string, string, string> {               /**              * before starting background thread show progress dialog              * */             @override             protected void onpreexecute() {                 super.onpreexecute();                  pdialog = new progressdialog(getactivity());                 pdialog.setmessage("loading products. please wait...");                 pdialog.setindeterminate(false);                 pdialog.setcancelable(false);                  pdialog.show();              }              /**              * getting products url              * */             protected string doinbackground(string... args) {                 // building parameters                   return null;             }              /**              * after completing background task dismiss progress dialog              * **/             protected void onpostexecute(string file_url) {                 // dismiss dialog after getting products                 pdialog.dismiss();                 // updating ui background thread                   getactivity().runonuithread(new runnable() {                     public void run() {                         /**                          * updating parsed json data listview                          * */                           mysimplearrayadapter adapter = new mysimplearrayadapter(                                 mcontext, productslist,                                 r.layout.load_main_groups_listview, foldername);                         setlistadapter(adapter);                      }                 });              }          }     } 

load_main_groups_activty , there layout customize view on main layout load_main_groups_listview

<?xml version="1.0" encoding="utf-8"?> <relativelayout xmlns:android="http://schemas.android.com/apk/res/android"                 android:layout_width="fill_parent"                 android:layout_height="fill_parent"                 android:orientation="vertical"                   android:background="@color/white"                      >     <!-- main listview          give id value list(@android:id/list)     -->     <listview             android:id="@+id/listview"             android:layout_width="fill_parent"             android:layout_alignparenttop="true"             android:layout_alignparentbottom="true"             android:layout_height="wrap_content"               >     </listview>  </relativelayout> 

logcat:

07-18 10:27:34.366: e/androidruntime(13948): fatal exception: main 07-18 10:27:34.366: e/androidruntime(13948): java.lang.runtimeexception: unable start activity componentinfo{com.jinisys.restoplusordering/com.jinisys.restoplusordering.tabs}: java.lang.nullpointerexception 07-18 10:27:34.366: e/androidruntime(13948):    @ android.app.activitythread.performlaunchactivity(activitythread.java:2059) 07-18 10:27:34.366: e/androidruntime(13948):    @ android.app.activitythread.handlelaunchactivity(activitythread.java:2084) 07-18 10:27:34.366: e/androidruntime(13948):    @ android.app.activitythread.access$600(activitythread.java:130) 07-18 10:27:34.366: e/androidruntime(13948):    @ android.app.activitythread$h.handlemessage(activitythread.java:1195) 07-18 10:27:34.366: e/androidruntime(13948):    @ android.os.looper.loop(looper.java:137) 07-18 10:27:34.366: e/androidruntime(13948):    @ android.app.activitythread.main(activitythread.java:4745) 07-18 10:27:34.366: e/androidruntime(13948):    @ java.lang.reflect.method.invokenative(native method) 07-18 10:27:34.366: e/androidruntime(13948):    @ java.lang.reflect.method.invoke(method.java:511) 07-18 10:27:34.366: e/androidruntime(13948):    @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:786) 07-18 10:27:34.366: e/androidruntime(13948):    @ com.android.internal.os.zygoteinit.main(zygoteinit.java:553) 07-18 10:27:34.366: e/androidruntime(13948):    @ dalvik.system.nativestart.main(native method) 07-18 10:27:34.366: e/androidruntime(13948): caused by: java.lang.nullpointerexception 07-18 10:27:34.366: e/androidruntime(13948):    @ com.jinisys.restoplusordering.tabs.oncreate(tabs.java:121) 07-18 10:27:34.366: e/androidruntime(13948):    @ android.app.activity.performcreate(activity.java:5008) 07-18 10:27:34.366: e/androidruntime(13948):    @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1079) 07-18 10:27:34.366: e/androidruntime(13948):    @ android.app.activitythread.performlaunchactivity(activitythread.java:2023) 07-18 10:27:34.366: e/androidruntime(13948):    ... 11 more 

the long , short answer never use listactivity , listfragment or variant thereof.

just use regular fragments , activities,

  1. put listview layout.
  2. create private class adapter extends arraylistadapter (or baseadapter or whatever).
  3. assign adapter on onactivitycreated() of fragment

listactivity , listfragment limited , attempt hide , couple should neither hidden nor coupled.

vogella has great tutorial

http://www.vogella.com/tutorials/androidlistview/article.html

no different usage within fragment.


Comments

Popular posts from this blog

php - Calling a template part from a post -

Firefox SVG shape not printing when it has stroke -

How to mention the localhost in android -