2017-10-11 38 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類沒有任何帶參數的構造函數。

我認爲你應該使用FragmentPagerAdapterFragmentStatePagerAdapter,但他們也有單參數構造函數,它需要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. 
    } 
} 
相關問題