2012-07-14 5 views
1

J'utilise ViewPagerExtensions. Je voudrais commencer une nouvelle activité dans chaque onglet de la classe Pager Adapter.Démarrer une nouvelle activité dans PagerAdapter

En ce moment, c'est le code par défaut:

@Override 
public Object instantiateItem(ViewGroup container, int position) { 

    RelativeLayout v = new RelativeLayout(mContext); 

    TextView t = new TextView(mContext); 
    t.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 
      LayoutParams.FILL_PARENT)); 
    t.setText(mData[position]); 
    t.setTextSize(30); 
    t.setGravity(Gravity.CENTER); 

    v.addView(t); 

    ((ViewPager) container).addView(v, 0); 

    return v; 

} 

Je voudrais faire quelque chose comme cela se fait pour les onglets Android:

@Override 
public Object instantiateItem(View container, int position) { 

    // Create an Intent to launch an Activity for the tab (to be reused) 
     intent = new Intent().setClass(this, NewActivity.class); 

} 

Cela jette l'erreur: The method setClass(Context, Class<?>) in the type Intent is not applicable for the arguments (PagerAdapter, Class<NewActivity>).

Répondre

2

Je crains que vous ne puissiez pas faire.

Si vous voulez la mise en page diffrent pour chaque page:

View parent_view = null; 

    if (position == 0) { 
     parent_view = getViewForPageOne(); 

    } else if (position == 1) { 
     parent_view = getViewForPageTwo(); 

    ......... 

    ((ViewPager) collection).addView(parent_view, 0); 
    return parent_view; 

} 

et

private View getViewForPageOne(){ 
    View v = getLayoutInflater().inflate(R.layout.layout_page_one, null); 
    TextView whatText =(TextView) v.findViewById(R.id.idOfTextView); 
    whatText.setText("Page One"); 
    .... 
    .... 

    return v; 
} 

Je pense que vous ne pouvez pas afficher une nouvelle activité dans chaque onglet avec ViewPagerExtensions

Mise à jour

Si oui Vous voulez démarrer une nouvelle activité? Vous pouvez utiliser ActionBarSherlock

+0

Merci pour votre réponse. Donc la classe calculatrice devrait être recodée dans ce format? – input

+0

voir ma réponse mise à jour –

0

Avez-vous essayé de gonfler la disposition de ces activités au lieu de?

@Override 
public Object instantiateItem(View collection, int position) { 
    View layout = inflater.inflate(R.layout.activity_layout, null); 

    /** Find your layout Views. */ 
    TextView text= (TextView) layout.findViewById(R.id.any_id); 

    // Set some values to your Views. 

    ((ViewPager) collection).addView(layout); 

    return layout; 
} 
+0

Je ne suis pas sûr de comprendre. Je veux afficher un calendrier dans l'un des onglets. J'ai une classe d'ici: http: //w2davids.wordpress.com/android-simple-calendar Comment pourrais-je faire cela? – input

+0

@input, avez-vous déjà essayé de gonfler le fichier layout simple xcalendar_view? – yugidroid

+0

Je suis désolé, je suis nouveau à ce sujet. vraiment apprécier votre aide si vous pouviez me dire comment cela? – input

Questions connexes