2015-09-04 1 views
1

Я скачал код из Github.I не может запустить задачу program.The является метод addOnPageChangeListener является undefined.Here это ошибка:addOnPageChangeListener неопределен

The method addOnPageChangeListener(TabLayout.TabLayoutOnPageChangeListener) is undefined for the type ViewPager

Что я должен делать? Должен ли я использовать другой метод? Вот код:

import android.support.design.widget.CollapsingToolbarLayout; 
import android.support.design.widget.CoordinatorLayout; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.design.widget.TabLayout; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentStatePagerAdapter; 
import android.support.v4.view.ViewPager; 
import android.support.v4.widget.DrawerLayout; 
import android.support.v7.app.ActionBarDrawerToggle; 
import android.support.v7.app.AppCompatActivity; 

import java.util.ArrayList; 


public class FourthActivity extends AppCompatActivity { 

// Need this to link with the Snackbar 
private CoordinatorLayout mCoordinator; 
//Need this to set the title of the app bar 
private CollapsingToolbarLayout mCollapsingToolbarLayout; 
private FloatingActionButton mFab; 
private Toolbar mToolbar; 
private DrawerLayout mDrawerLayout; 
private ActionBarDrawerToggle mDrawerToggle; 
private ViewPager mPager; 
private YourPagerAdapter mAdapter; 
private TabLayout mTabLayout; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_fourth); 
    mCoordinator = (CoordinatorLayout) findViewById(R.id.root_coordinator); 

    mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, mToolbar, R.string.drawer_open, R.string.drawer_close); 
    mDrawerLayout.setDrawerListener(mDrawerToggle); 
    mDrawerToggle.syncState(); 

    mTabLayout = (TabLayout) findViewById(R.id.tab_layout); 
    mAdapter = new YourPagerAdapter(getSupportFragmentManager()); 
    mPager = (ViewPager) findViewById(R.id.view_pager); 
    mPager.setAdapter(mAdapter); 
    //Notice how the Tab Layout links with the Pager Adapter 
    mTabLayout.setTabsFromPagerAdapter(mAdapter); 

    //Notice how The Tab Layout adn View Pager object are linked 
    mTabLayout.setupWithViewPager(mPager); 
    mPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(mTabLayout)); 


    mFab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //Notice how the Coordinator Layout object is used here 
      Snackbar.make(mCoordinator, "FAB Clicked", Snackbar.LENGTH_SHORT).setAction("DISMISS", null).show(); 
     } 
    }); 

    //Notice how the title is set on the Collapsing Toolbar Layout instead of the Toolbar 
    mCollapsingToolbarLayout.setTitle(getResources().getString(R.string.title_activity_fourth)); 
} 
+0

'addOnPageChangeListener 'принимает' ViewPager.OnPageChangeListener' как параметр вместо 'TabLayout.TabLayoutOnPageChangeListener'. поэтому ссылка git repo, с которой вы загрузили проект. –

+0

@ ρяσѕρєяK Ошибка не из-за параметра. Проблема в том, что нет метода addOnPageChangeListener для mPager, который является объектом ViewPager – farzin

ответ

1

Найдите зависимость андроид библиотеки поддержки-v4 в build.gradle, обновить версию до 22.2.1 или 23.0.1, линия выглядит следующим образом

compile 'com.android.support:support-v4:23.0.1' 
+0

, но как я могу это сделать в eclipse? – farzin

+0

как вы импортируете свою библиотеку поддержки? –

+0

просто найти новую версию библиотеки поддержки и заменить старую –