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?