Android 如何将片段添加到列表中

Android 如何将片段添加到列表中,android,android-fragments,fragment,fragmentpageradapter,Android,Android Fragments,Fragment,Fragmentpageradapter,我创建了以下包: 主页->HomeActivity.class,HomeFragment.class,SectionsPageAdapter.class 朋友->Friends.class 消息->Messages.class SectionsPageAdapter扩展FragmentPagerAdapter以管理片段, 节SPAGEAdapter中编写的代码是: package com.example.sk.voiceapplication.HomePage; import andro

我创建了以下包:

主页->HomeActivity.class,HomeFragment.class,SectionsPageAdapter.class

朋友->Friends.class

消息->Messages.class

SectionsPageAdapter扩展FragmentPagerAdapter以管理片段, 节SPAGEAdapter中编写的代码是:

    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);
    }
}
现在,类朋友和消息与HomeFragment相同,但需要做一些小改动 在课堂家庭活动中我写了:

    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);
    }
}
在HomeActivity中创建片段对象并将其添加到带有行的SectionsPageAdapter时

addFragment(新的HomeFragment())

它显示错误:

无法将SpageAdapter部分中的addFragment(android.support.v4.app.Fragment)应用于(com.example.sk.voiceapplication.homepragment)

类似于

addFragment(新消息())

无法将SpageAdapter部分中的addFragment(android.support.v4.app.Fragment)应用于(com.example.sk.voiceapplication.Messages.Messages)

addFragment(newFriends())

SpageAdapter部分中的addFragment(android.support.v4.app.Fragment)不能应用于(com.example.sk.voiceapplication.Friends.Friends)

我做错了什么?
解决方案是什么?

您缺少导入
导入android.support.v4.app.Fragment。您必须使用V4 Fragment而不是
android.app.Fragment

替换-:

导入android.app.Fragment

致-:

导入android.support.v4.app.Fragment在所有片段中。

将其更改为-:

public class HomeFragment extends Fragment

{

}
致-:

在你的三个片段中

public class HomeFragment extends Fragment

{

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

{


}