Search code examples
androidandroid-fragmentsandroid-viewpagerandroid-tablayoutandroiddesignsupport

Error : is not abstract and does not override abstract method onTabReselected(Tab) in OnTabSelectedListener


I am trying to create an Android app that has Tabs with Fragments and ViewPager. I've tried looking for a solution online to no avail. Most solutions I've seen only mentioned of wrong imports but I don't think that;s the problem. It would be nice if someone can not only fix my error but also explain a bit of why it happens. I'm following this tutorials and it seems liable : http://www.truiton.com/2015/06/android-tabs-example-fragments-viewpager/

Here is my code:

package com.example.carlajoyce.ccare;


import android.os.Bundle;
import android.support.design.widget.TabLayout;
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 static android.support.design.widget.TabLayout.*;

public class MytabActivity extends AppCompatActivity {

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

    Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    TabLayout tabLayout = (TabLayout)findViewById(R.id.tab_layout);
    tabLayout.addTab(tabLayout.newTab().setText(R.string.string_pending));
    tabLayout.addTab(tabLayout.newTab().setText(R.string.string_onprocess));
    tabLayout.addTab(tabLayout.newTab().setText(R.string.string_onhold));
    tabLayout.addTab(tabLayout.newTab().setText(R.string.string_completed));
    tabLayout.setTabGravity(GRAVITY_FILL);

    final ViewPager viewPager = (ViewPager)findViewById(R.id.pager);

    final PagerAdapter adapter = new PagerAdapter(getSupportFragmentManager(),tabLayout.getTabCount());
    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());
        }

        public void onTabUnSelected(TabLayout.Tab tab){
        }

        public void onTabReSelected(TabLayout.Tab tab){
        }
    });
}

@Override
public boolean onCreateOptionsMenu(Menu menu){
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item){
    int id = item.getItemId();
    if(id == R.id.action_settings){
        return true;
    }
    return super.onOptionsItemSelected(item);
}

}


Solution

  • You have a typo: onTabReSelected instead of onTabReselected.