2017-03-09 11 views
0

タブフラグメントを実装しようとしていますか?私が新しい活動を始めたいと思う1つのタブに触れたら。この場合、私は新しい活動を開始する意図を使用しましたが、それは機能しません。インテントをここに追加する方法FragmentStatePagerAdapterへインテントを実装

public class PagerAdapter extends FragmentStatePagerAdapter { 
int mNumOfTabs; 

public PagerAdapter(FragmentManager fm, int NumOfTabs) { 
    super(fm); 
    this.mNumOfTabs = NumOfTabs; 
} 

@Override 
public Fragment getItem(int position) { 

    switch (position) { 

     case 0: 
      Intent intent = new Intent(new MainActivity(), Alarm.class); 
      startActivity(intent); 

     default: 
      return null; 
    } 
} 

@Override 
public int getCount() { 
    return mNumOfTabs; 
} 

答えて

0

私は

A FragmentPagerAdapter新しい活動を開始するには1つのタブをタッチした場合getItem()方法からフラグメントを示しています。アクティビティを開始しません。

@Override 
public Fragment getItem(int position) { 
    Fragment f = null; 
    switch (position) { 
     case 0: 
      f = new AlarmFragment(); 
      break; 
     default: 
      break; // returning null could cause errors, though 

    } 
    return f; 
} 

1かかわらず、あなたは本当に、この機能が必要な場合)new Intent()はないActivity明示的、Contextをとります。

2)new SomeActivity()は管理されておらず、問題が発生するため決して作成しないでください。他のアダプタと同様に

は、あなたが

Intent intent = new Intent(this.mContext, Alarm.class); 
+0

に戻す必要があります。素晴らしい説明。ありがとうブラザー。 – ManojKanth

0

ことContext

private Context mContext; 
public PagerAdapter(Context context, FragmentManager fm, int NumOfTabs) { 
    super(fm); 
    this.mContext = context; 
    this.mNumOfTabs = NumOfTabs; 
} 

を渡し、使用することができますよろしいですか? PagerAdapterは、ViewPagerのフラグメントを変更します。 タブ項目のクリックを開始するには、TabLayoutが必要です。 しかし、ページを変更したい場合は、フラグメントを getItem(int position)メソッド

関連する問題