2012-07-03 2 views
0

Я хотел бы запустить новую активность в функции instantiateItem(). То, что я понимаю об этой функции, состоит в том, что просто разрешено добавлять TextView в эту функцию. Возможно ли создать новую деятельность или намерение ниже функции? Коды описаны ниже.Как запустить новую активность из функции instantiateItem() реализует ViewPagerTabProvider

@Override 
public Object instantiateItem(View 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; 

} 
+0

Почему вы хотите новую активность запустить в instantiateItem? В instantiateItem вы не только добавляете Textview, но также можете раздувать новый макет в instantiateItem ... –

+0

@MMohsinNaeem спасибо за ответ. Я хочу запустить новую активность, так как у меня есть разные действия, которые можно сказать, как перечисление для каждой вкладки. Это было бы здорово, если бы вы могли вести меня с помощью некоторых примеров кодов. –

+0

Я боюсь, что вы не сможете это сделать, что вы планируете делать :) Что вы можете сделать с помощью пейджера, я пишу в своем ответе. надеюсь, это поможет вам. –

ответ

1

Если вы хотите diffrent макет для каждой страницы, то вы можете сделать что-то подобное, в instantiateItem

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; 

    } 

и

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; 
    } 
Смежные вопросы