android - View pager With Fragments and Indicator -


i developing app in have implemented viewpager want user swipe , next screen. implementing fragments. want 1 more thing. want indicate screen active now. tabs. searched on internet did not find thing helpful.if there idea appriciated. thanks. here view pager adapter , fragment activity , xml layout

import java.util.arraylist; import java.util.list;  import com.viewpagerindicator.titlepageindicator;  import android.os.bundle; import android.support.v4.app.fragment; import android.support.v4.app.fragmentactivity; import android.support.v4.view.viewpager; import android.support.v4.view.viewpager.onpagechangelistener; import android.widget.toast;  public class mainactivity extends fragmentactivity implements onpagechangelistener {      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main);          list<fragment> list = new arraylist<fragment>();         list.add(myfragment.newinstance("fragment 1"));         list.add(myfragment.newinstance("fragment 2"));         list.add(myfragment.newinstance("fragment 3"));         mypageradapter = new mypageradapter(getsupportfragmentmanager(), list);         viewpager pager = (viewpager) findviewbyid(r.id.viewpager);         pager.setadapter(a);      }      @override     public void onpagescrollstatechanged(int arg0) {         // todo auto-generated method stub      }      @override     public void onpagescrolled(int arg0, float arg1, int arg2) {         // todo auto-generated method stub     }      @override     public void onpageselected(int arg0) {         // todo auto-generated method stub      }   } 

adapter.java

package com.example.fragments;  import java.util.list;  import android.support.v4.app.fragment; import android.support.v4.app.fragmentmanager; import android.support.v4.app.fragmentpageradapter; import android.support.v4.view.pageradapter; import android.view.view;  public class mypageradapter extends fragmentpageradapter {     list<fragment> fragments;     public mypageradapter(fragmentmanager fm,list<fragment> f) {         super(fm);         this.fragments = f;     }      @override     public fragment getitem(int arg0) {          return fragments.get(arg0);     }     @override     public int getcount() {         // todo auto-generated method stub         return fragments.size();     } } 

main.xml

<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent" >       <android.support.v4.view.viewpager         android:id="@+id/viewpager"         android:layout_below="@+id/titles"         android:layout_width="fill_parent"         android:layout_height="fill_parent" />  </relativelayout> 

see have created class create page indicator

public class dotsscrollbar {     linearlayout main_image_holder;     public static void createdotscrollbar(context context, linearlayout main_holder,int selectedpage,int count)     {         for(int i=0;i<count;i++)         {             imageview dot = null;             dot= new imageview(context);             linearlayout.layoutparams vp =                  new linearlayout.layoutparams(layoutparams.wrap_content,                                  layoutparams.wrap_content);             dot.setlayoutparams(vp);                 if(i==selectedpage)             {                 try {                     dot.setimageresource(r.drawable.paging_h);                 } catch (exception e)                  {                     log.d("inside dotsscrollbar.java","could not locate identifier");                 }             }else             {                 dot.setimageresource(r.drawable.paging_n);             }             main_holder.addview(dot);         }         main_holder.invalidate();     } } 

now in activity class call function createdotscrollbar below:

public void updateindicator(int currentpage) {         dots_scrollbar_holder.removeallviews();         dotsscrollbar.createdotscrollbar(this, mdotsscrollbarholder,                 mcurrentpage, totalnumberofpages);     } 

and call updateindicator function inside onpagescrollstatechanged

like :

    @override         public void onpagescrollstatechanged(int state) {             // todo auto-generated method stub switch (state) {          case 0:     updateindicator(mcurrentpage); break;         } 

hope trick.


Comments