Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 包含片段的返回类_Java_Android_Fragment - Fatal编程技术网

Java 包含片段的返回类

Java 包含片段的返回类,java,android,fragment,Java,Android,Fragment,我想覆盖公共函数getItem(int位置): tab1内容如下所示: public class Tab1Content extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.t

我想覆盖公共函数getItem(int位置):

tab1内容如下所示:

public class Tab1Content extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.tab1_content, container, false);
        return rootView;
    }
}
@Override public Fragment getItem(int position) {
        switch (position) {
            case 0:
                return TestFragment.newInstance(1);
            case 1:
                return TestFragment1.newInstance(2);
            case 2:
                return TestFragment2.newInstance(3);
        }
        return null;
    }
但Android Studio在日志中抛出错误:

Error:(141, 28) error: incompatible types: Tab1Content cannot be converted to Fragment

我做错了什么?

您的片段应该扩展了
android.support.v4.fragment

除此之外,应该在片段中使用空构造函数

如果要在片段中传递某些数据,也可以使用newInstance方法:

片段:

   public static TestFragment newInstance(int type) {

        TestFragment f = new TestFragment();
        Bundle b = new Bundle();
        b.putInt("type", type);

        f.setArguments(b);

        return f;
    }
您的
getItem
如下所示:

public class Tab1Content extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.tab1_content, container, false);
        return rootView;
    }
}
@Override public Fragment getItem(int position) {
        switch (position) {
            case 0:
                return TestFragment.newInstance(1);
            case 1:
                return TestFragment1.newInstance(2);
            case 2:
                return TestFragment2.newInstance(3);
        }
        return null;
    }

TestFragment1
TestFragment2
类似于您的
TestFragment

在适配器的导入行下方添加:
import android.support.v4.app.Fragment;导入android.support.v4.app.FragmentManager;导入android.support.v4.app.FragmentPagerAdapter并在片段类中添加以下导入:
导入android.support.v4.app.Fragment