2017-10-11 14 views
-1

タブ付きアクティビティを持つフラグメントに使用される次のコードスニペットがあります。タブ付きアクティビティのPagerAdapterを使用したフラグメント使用上の問題

import android.os.Bundle; 
import android.support.design.widget.TabLayout; 
import android.support.v4.view.PagerAdapter; 
import android.support.v4.view.ViewPager; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 


public class LoginSignupActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_loginsignup); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout); 
     tabLayout.addTab(tabLayout.newTab().setText("Tab 1")); 
     tabLayout.addTab(tabLayout.newTab().setText("Tab 2")); 
     tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); 

     final ViewPager viewPager = (ViewPager) findViewById(R.id.pager); 
     final PagerAdapter adapter = new PagerAdapter 
       (getSupportFragmentManager(), tabLayout.getTabCount()) { 
      @Override 
      public int getCount() { 
       return 0; 
      } 

      @Override 
      public boolean isViewFromObject(View view, Object object) { 
       return false; 
      } 
     }; 
     viewPager.setAdapter(adapter); 
     viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout)); 
     tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
      @Override 
      public void onTabSelected(TabLayout.Tab tab) { 
       viewPager.setCurrentItem(tab.getPosition()); 
      } 

      @Override 
      public void onTabUnselected(TabLayout.Tab tab) { 

      } 

      @Override 
      public void onTabReselected(TabLayout.Tab tab) { 

      } 
     }); 
    }  
} 

しかし、私はエラーを取得しています、

PagerAdapter()PagerAdapterに(android.support.v4.app.FragmentManager、int型)に適用することはできません

私はどうすればよいですこのエラーを解決しますか? ご協力いただければ幸いです。

+0

'FragmentPagerAdapter'の代わりに、' PagerAdapter'、仲間 – EpicPandaForce

+0

クラスのFragmentPagerAdapterから派生匿名クラスは ' 'FragmentPagerAdapter' に 'のgetItem(int型)' 抽象宣言や抽象メソッドを実装する必要がありますどちらか@EpicPandaForceを変更したときにこれを得ました – Avid

答えて

1

クラスPagerAdapterには、引数を持つコンストラクタがありません。

FragmentPagerAdapterまたはFragmentStatePagerAdapterのいずれかを使用する必要がありますが、パラメータとしてFragmentManagerをとる単一の引数コンストラクタもあります。

試してみてください。

FragmentPagerAdapter adapter = new FragmentPagerAdapter(getSupportFragmentManager()) { 
    @Override 
    public Fragment getItem(int position) { 
     return null; // return item from your array or list. 
    } 

    @Override 
    public int getCount() { 
     return 0; //return size of your array of list. 
    } 
} 
関連する問題