2014-09-09 1 views
-2

Je voulais avoir 80 pages dans mon application, qui ressemblent au code suivant. Je peux passer d'une page à l'autre sur deux boutons. Parce que je ne veux pas créer 80 activités, je dois connecter les 80 pages en une seule activité. Comment ça marche?Eclipse Android: différentes pages dans une activité?

package com.example.xxx; 

    import android.app.Activity; 
    import android.content.Intent; 
    import android.os.Bundle; 
    import android.view.View; 

public class PictureOne extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.pictureone);} 

public void Picture0 (View view){ 
    Intent i = new Intent(this, PageZero.class);    
     startActivity(i);}} 

public void Picture2 (View view){ 
    Intent i = new Intent(this, PageTwo.class);    
     startActivity(i);}} 

XML:

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 



    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="200dp" 
     android:layout_height="200dp" 
     android:layout_centerInParent="true" 
     android:layout_marginLeft="14dp" 
     android:src="@drawable/pic1" /> 

    <ImageView 
     android:id="@+id/imageView4" 
     android:layout_width="100dp" 
     android:layout_height="100dp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:src="@drawable/left" 
     android:onClick="Picture0"/> 

    <ImageView 
     android:id="@+id/imageView4" 
     android:layout_width="100dp" 
     android:layout_height="100dp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:src="@drawable/right" 
     android:onClick="Picture2"/> 

</RelativeLayout> 
+2

Vous pouvez utilisez viewPager. 'http: // developer.android.com/reference/android/support/v4/view/ViewPager.html' – Anatol

Répondre

0

80 pages -> 80 activités, c'est une très mauvaise idée, car il chargera ressources pour rien. Ce que je vous suggère est de jeter un oeil un widget ViewPager (de Wich, avec le geste de balayage , est vraiment mieux dans l'idée de « Pages ») et utiliser un custom adapter pour créer la page programme Wich dans une seule classe .

Je crée habituellement un Classe d'objet avec tous les attributs dont j'ai besoin et implement Fragment. Comme cette

public class QuestionStack extends Fragment { 

    private String textQuestionStack; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View v = inflater.inflate(R.layout.question_row, container, false); 

     TextView messageTextView = (TextView) v.findViewById(R.id.title); 
     messageTextView.setText(textQuestionStack); 
     return v; 
    } 
} 

Puis mon adaptateur:

public class QuestionStackAdapter extends FragmentPagerAdapter { 

    private List<Fragment> fragments; 

    public QuestionStackAdapter (FragmentManager fm, List<Fragment> fragments) { 
     super(fm); 
     this.fragments = fragments; 
    } 

    @Override 
     public Fragment getItem(int position) { 
     return this.fragments.get(position); 
     } 

     @Override 
     public int getCount() { 
     return this.fragments.size(); 
     } 
} 

Et viewpager objet dans la activity classe:

List<Fragment> fList = new ArrayList<Fragment>(); 
private QuestionStackAdapter pagerAdapter; 
private ViewPager pager; 

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     pagerAdapter = new QuestionStackAdapter(getSupportFragmentManager(), fList); 

     // init Views 
     pager = (ViewPager) findViewById(R.id.pagerQuestionStack); 
     pager.setAdapter(pagerAdapter); 
} 

Maintenant, vous souhld avez quelque chose à essayer :)

Questions connexes