-1

I created the following packages:

HomePage -> HomeActivity.class,HomeFragment.class,SectionsPageAdapter.class

Friends -> Friends.class

Messages -> Messages.class

SectionsPageAdapter extends FragmentPagerAdapter to manage Fragments, The code written in SectionsPageAdapter is:

    package com.example.sk.voiceapplication.HomePage;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

import java.util.ArrayList;
import java.util.List;

public class SectionsPageAdapter extends FragmentPagerAdapter {

    private final List<Fragment> fragment_hierarchy = new ArrayList<>();

    public SectionsPageAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        return fragment_hierarchy.get(position);
    }

    @Override
    public int getCount() {
        return fragment_hierarchy.size();
    }
    public void addFragment(Fragment fragment){
        fragment_hierarchy.add(fragment);
    }
}

Class HomeFragment:

    package com.example.sk.voiceapplication.HomePage;

import android.app.Fragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;

import com.example.sk.voiceapplication.R;


public class HomeFragment extends Fragment {
    private static final String TAG = "HomeFragment";

    private Button btn_test;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.home_fragment,container,false);
        btn_test = (Button) view.findViewById(R.id.button2);
        btn_test.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                Toast.makeText(getActivity(),"Testing Button Click 2", Toast.LENGTH_SHORT).show();
            }
        });
        return view;
    }
}

Now Class Friends and Messages are same as HomeFragment with some required minor changes In class HomeActivity i written :

    package com.example.sk.voiceapplication.HomePage;

import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.design.widget.TabLayout;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

import com.example.sk.voiceapplication.Friends.Friends;
import com.example.sk.voiceapplication.Messages.Messages;
import com.example.sk.voiceapplication.Profile.MyProfile;
import com.example.sk.voiceapplication.R;

public class HomeActivity extends AppCompatActivity {

    private static final String TAG = "HomeActivity";

    private SectionsPageAdapter sectionsPagerAdapter;
    private ViewPager viewPager;

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

    private void setupFragments() {
        sectionsPagerAdapter = new SectionsPageAdapter(getSupportFragmentManager());
        viewPager = (ViewPager) findViewById(R.id.container);
        setupViewPager(viewPager);
        TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
        tabLayout.setupWithViewPager(viewPager);
        tabLayout.getTabAt(0);
        tabLayout.getTabAt(1);
        tabLayout.getTabAt(2);
    }

    private void setupViewPager(ViewPager viewPager) {
        SectionsPageAdapter adapter = new SectionsPageAdapter(getSupportFragmentManager());
        adapter.addFragment(new HomeFragment());
        adapter.addFragment(new Messages());
        adapter.addFragment(new Friends());
        viewPager.setAdapter(adapter);
    }
}

In HomeActivity When i am creating object of Fragments and adding them to SectionsPageAdapter with Line

adapter.addFragment(new HomeFragment());

it shows error:

addFragment(android.support.v4.app.Fragment) in SectionsPageAdapter cannot be applied to (com.example.sk.voiceapplication.HomePage.HomeFragment)

And similar for

adapter.addFragment(new Messages());

addFragment(android.support.v4.app.Fragment) in SectionsPageAdapter cannot be applied to (com.example.sk.voiceapplication.Messages.Messages)

adapter.addFragment(new Friends());

addFragment(android.support.v4.app.Fragment) in SectionsPageAdapter cannot be applied to (com.example.sk.voiceapplication.Friends.Friends)

What i am doing wrong? What is the solution?

Sachin Rajput
  • 4,326
  • 2
  • 18
  • 29

2 Answers2

0

You are missing import import android.support.v4.app.Fragment;. You have to use V4 Fragment not android.app.Fragment.

Replace-:

import android.app.Fragment;

To-:

import android.support.v4.app.Fragment; in all your fragments .

Shivam Oberoi
  • 1,447
  • 1
  • 9
  • 18
ADM
  • 20,406
  • 11
  • 52
  • 83
0

Change this to-:

public class HomeFragment extends Fragment

{

}

To-:

public class HomeFragment extends android.support.v4.app.Fragment

{


}

in all of your three fregments

Shivam Oberoi
  • 1,447
  • 1
  • 9
  • 18