Reputation:
I am trying to create tabs in my android activity,I have done this before,used the same type implementation for this method also
Now in my Activity class in this line final PagerAdapter adapter = new PagerAdapter(getSupportFragmentManager(), tabLayout.getTabCount()); I have an error PagerAdapter is abstract; cannot be instantiate I don't know what does that mean
Here is my Activity class code
package com.example.rimapps.icar_iisr_turmeric.view;
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 com.example.rimapps.icar_iisr_turmeric.R;
public class PestsHome extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pests_home);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
tabLayout.addTab(tabLayout.newTab().setText(R.string.diseases));
tabLayout.addTab(tabLayout.newTab().setText(R.string.insectpescts));
tabLayout.addTab(tabLayout.newTab().setText(R.string.bioagents));
tabLayout.setTabGravity(TabLayout.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());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
}
Then there is another thing in my Adapter class I cannot return my final tab "tab3" it says Required android.support.v4.app.Fragment; but i have imported that already
here is my adapter class code
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import com.example.rimapps.icar_iisr_turmeric.view.TabFragment1;
import com.example.rimapps.icar_iisr_turmeric.view.TabFragment2;
import com.example.rimapps.icar_iisr_turmeric.view.TabFragment3;
public class PagerAdapter extends FragmentStatePagerAdapter {
int mNumOfTabs;
public PagerAdapter(FragmentManager fm, int NumOfTabs) {
super(fm);
this.mNumOfTabs = NumOfTabs;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
TabFragment1 tab1 = new TabFragment1();
return tab1;
case 1:
TabFragment2 tab2 = new TabFragment2();
return tab2;
case 2:
TabFragment3 tab3 = new TabFragment3();
return tab3;
default:
return null;
}
}
@Override
public int getCount() {
return mNumOfTabs;
}
please help
Upvotes: 0
Views: 3552
Reputation: 37404
Issue is, you have named you customize adapter as PagerAdapter
which is also an existing API in android PagerAdapter.
So remove the import
import android.support.v4.view.PagerAdapter;
and carefully import your pageradapter package
Note : It's recommended to avoid naming your classes same as android API
Upvotes: 3