Abhi
Abhi

Reputation: 2295

Cannot resolve method 'addOnTabSelectedListener(anonymous android.support.design.widget.TabLayout.OnTabSelectedListener)'

I don't know why but I'm not able to use addOnTabSelectedListener, though I'm able to use setOnTabSelectedListener() but I don't want to. Here is my code:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);

    Display display = getWindowManager().getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    int width = size.x;

    drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    back = (ImageView) findViewById(R.id.back_navigation);
    fab = (FloatingActionButton) findViewById(R.id.fab_explore);
    viewPager = (CustomViewPager) findViewById(R.id.viewPager_home);
    tabLayout = (TabLayout) findViewById(R.id.bottom_navigation2);
    navigationView = (NavigationView) findViewById(R.id.nav_view);

    DrawerLayout.LayoutParams params = (DrawerLayout.LayoutParams) navigationView.getLayoutParams();
    params.width = (int) (width * 0.9);
    navigationView.setLayoutParams(params);

    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            drawer.openDrawer(GravityCompat.START);
        }
    });
    setupViewPager(viewPager);
    back.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            drawer.closeDrawer(GravityCompat.START);
        }
    });
    tabLayout.setupWithViewPager(viewPager);
    setupIcon();
    tabLayout.getTabAt(0).getIcon().setAlpha(255);
    tabLayout.getTabAt(1).getIcon().setAlpha(100);
    tabLayout.getTabAt(2).getIcon().setAlpha(100);
    tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {
        }

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

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

        }
    });
}

public void setupIcon() {
    tabLayout.getTabAt(0).setIcon(tabIcons[0]);
    tabLayout.getTabAt(1).setIcon(tabIcons[1]);
    tabLayout.getTabAt(2).setIcon(tabIcons[2]);
}

private void setupViewPager(ViewPager viewPager) {
    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
    adapter.addFragment(new Digest(), "Digest");
    adapter.addFragment(new Topics(), "Topics");
    adapter.addFragment(new Profile(), "Profile");
    viewPager.setAdapter(adapter);
}

I don't know what I'm doing wrong. My compileSdkVersion is 23 and all android support libraries are 23 as well.

Upvotes: 3

Views: 4841

Answers (2)

Anant Shah
Anant Shah

Reputation: 4044

Make sure your build version and design support library versions are same. In your case build tool version and your design support library versions are different, So your are facing that problem

for example in my case:

compileSdkVersion 25
buildToolsVersion '25.0.0'

and in dependencies

compile 'com.android.support:design:25.3.1'
compile 'com.android.support:support-v4:25.3.1'

and that error will be gone for sure.

Upvotes: 1

Sasi Kumar
Sasi Kumar

Reputation: 13358

Add dependencies inside your build.gradle file

dependencies {
compile 'com.android.support:design:23.1.1'
}

Upvotes: 1

Related Questions