0

Je sais comment développer l'activité de l'onglet en utilisant la mise en page XML et aussi je sais comment faire radiomessagerie android comme on le voit dans l'application Android MarketMettre en œuvre Pagination sur l'onglet mise en page

mais je ne reçois pas comment fusionner cette pagination concept de l'activité de l'onglet et comment créer tabactivity à partir du code java:

voir le code ci-dessous j'utiliser pour la pagination en utilisant la mise en page linéaire:

sample.java

public class Sample extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     // creates the Pagination Layout 
     PaginationLayout paginationLayout = new PaginationLayout(this); 
     paginationLayout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 

     // creates content only for sample 
     TableLayout table = new TableLayout(this); 
     table.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
     table.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL); 

     TableRow row = new TableRow(this); 
     row.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
     table.addView(row); 

     TableRow row2 = new TableRow(this); 
     row2.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
     table.addView(row2); 

     for(int i = 0; i< 50;i++){ 
      Button button = new Button(this); 
      button.setText("Button " + i); 
      if (i%2==0) { 
       row.addView(button); 
      } else { 
       row2.addView(button); 
      } 
     } 

     // add the content in pagination 
     paginationLayout.addView(table); 
     // set pagination layout 
     setContentView(paginationLayout); 
    } 
} 

et le code pour la mise en pagination:

public class PaginationLayout extends LinearLayout { 

    private int mPageActive = 0; 
    private HorizontalScrollView mScroll; 
    private LinearLayout mBar; 

    public PaginationLayout(Context context) { 
     super(context); 

     setOrientation(LinearLayout.VERTICAL); 

     // creates the class that will control the gestures and apply it in the 
     // scroll 
     final GestureDetector mGestureDetector = new GestureDetector(new MySimpleOnGestureListener()); 

     mScroll = new HorizontalScrollView(context); 
     mScroll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
     mScroll.setOnTouchListener(new View.OnTouchListener() { 

      public boolean onTouch(View v, MotionEvent event) { 
       if (mGestureDetector.onTouchEvent(event)) { 
        return true; 
       } else { 
        return false; 
       } 
      } 
     }); 

     // creates Previous and Next buttons 
     Button btnPrevious = new Button(getContext()); 
     btnPrevious.setLayoutParams(new LayoutParams(150, LayoutParams.FILL_PARENT)); 
     btnPrevious.setText("Previous"); 
     btnPrevious.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
       previous(); 
      } 
     }); 

     Button btnMid = new Button(getContext()); 
     btnMid.setLayoutParams(new LayoutParams(150, LayoutParams.FILL_PARENT)); 
     btnMid.setText("Mid"); 
     btnMid.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
       next(); 
      } 
     }); 

     Button btnNext = new Button(getContext()); 
     btnNext.setLayoutParams(new LayoutParams(150, LayoutParams.FILL_PARENT)); 
     btnNext.setText("Next"); 
     btnNext.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
       next(); 
      } 
     }); 

     // bar that include the buttons 
     mBar = new LinearLayout(getContext()); 
     mBar.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
     mBar.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL); 
     mBar.setBackgroundColor(Color.GRAY); 
     mBar.addView(btnPrevious); 
     mBar.addView(btnNext); 
     //mBar.setBackgroundDrawable(getResources().getDrawable(R.drawable.android_1080p)); 
     mBar.setVisibility(LinearLayout.INVISIBLE); 

     // add bar and scroll in the super (LinearLayout) 
     super.addView(mBar); 
     super.addView(mScroll); 
    } 

    /** 
    * All that the user include is added in the scroll 
    */ 
    @Override 
    public void addView(View child) { 
     mScroll.addView(child); 
    } 

    /** 
    * Controls if the top bar should appear or not 
    */ 
    @Override 
    protected void onSizeChanged(int arg0, int arg1, int arg2, int arg3) { 
     super.onSizeChanged(arg0, arg1, arg2, arg3); 
     View chield = mScroll.getChildAt(0); 
     if (chield != null) { 
      if (chield.getMeasuredWidth() > getWidth()) { 
       mBar.setVisibility(LinearLayout.VISIBLE); 
      } else { 
       mBar.setVisibility(LinearLayout.INVISIBLE); 
      } 
     } 
    } 

    /** 
    * does the effect "back a page" 
    */ 
    public void previous() { 
     mPageActive = (mPageActive > 0) ? mPageActive - 1 : 0; 
     mScroll.smoothScrollTo(mPageActive * mScroll.getWidth(), 0); 
    } 

    /** 
    * does the effect "forward a page" 
    */ 
    public void next() { 
     int pageWidth = mScroll.getWidth(); 
     int nextPage = (mPageActive + 1) * pageWidth; 
     if (nextPage - mScroll.getScrollX() <= pageWidth) { 
      mScroll.smoothScrollTo(nextPage, 0); 
      mPageActive++; 
     } else { 
      mScroll.smoothScrollTo(mScroll.getScrollX(), 0); 
     } 
    } 

    /** 
    * Private class that controls the gestures, forward or back a page. 
    */ 
    private class MySimpleOnGestureListener extends SimpleOnGestureListener { 

     @Override 
     public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 

      if (e1 != null && e2 != null) { 
       if (e1.getX() - e2.getX() > 0) { 
        // forward... 
        next(); 
        return true; 
       } else if (e2.getX() - e1.getX() > 0) { 
        // back... 
        previous(); 
        return true; 
       } 
      } 

      return false; 
     } 
    } 
} 

Répondre

1

Je l'ai trouvé this il est peut-être utile;)

+0

Merci pour la réponse na pas angie..i trouvé une solution pour cela, je vais essayer votre code et dira si je suis en mesure de le faire maintenant ou non – Shruti

+0

pouvez-vous s'il vous plaît fournir un lien vers le code source ?? – Shruti

+0

j'ai testé celui-ci http://thepseudocoder.wordpress.com/2011/10/13/android-tabs-viewpager-swipe-able-tabs-ftw/ cela a fonctionné pour moi, j'espère que c'est ce que vous voulez – Angie