Android:扩展和转换片段问题

Posted

技术标签:

【中文标题】Android:扩展和转换片段问题【英文标题】:Android: Extending and casting Fragment issue 【发布时间】:2014-09-15 16:17:08 【问题描述】:

我正在尝试创建一个 ViewPager,其中包含此 tutorial 之后的几个片段。问题是Eclipse说下面的语句有错误:

Fragment f = new MyFragment();

但是 MyFragment 扩展了 Fragment 类,所以出现这样的错误有点奇怪。以下是MyAdapterMyFragment 类的代码:

package com.example.myapp;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

    public class MyFragment extends Fragment  
        public View onCreateView(LayoutInflater li , ViewGroup vg , Bundle b) 
            return li.inflate(R.layout.fragment_layout, vg , false);            
               
        public MyFragment()            
        
    

    class MyAdapter extends FragmentPagerAdapter   
        public MyAdapter(FragmentManager fm) 
            super(fm);
            // TODO Auto-generated constructor stub
        
        @Override
        public Fragment getItem(int arg0) 
            Fragment f = new MyFragment();
            return f;
        
        @Override
        public int getCount() 
            // TODO Auto-generated method stub
            return 0;
               
    

【问题讨论】:

你得到什么错误?和Fragment是同一类型吗? (片段与支持片段) 这是一个片段/支持片段问题。我已经完全忘记了。谢谢 【参考方案1】:

尝试更改导入:

import android.app.Fragment

收件人:

import android.support.v4.app.Fragment

【讨论】:

【参考方案2】:
@Override
public Fragment getItem(int arg0) 
    Fragment f = new MyFragment();
    return f;

改成

@Override
public Fragment getItem(int arg0) 
    MyFragment f = new MyFragment();
    return f;

【讨论】:

【参考方案3】:

如果您使用的是 viewpager,您还需要使用支持 v4 包中的 Fragment。 所以你需要确保 MyFragment 扩展了正确的 Fragment。正如 nem 所说,您需要更改导入语句

import android.support.v4.app.Fragment

【讨论】:

以上是关于Android:扩展和转换片段问题的主要内容,如果未能解决你的问题,请参考以下文章

Android:片段无法转换为上下文[重复]

Android - 片段转换时出现黑屏

在扩展片段活动android的类中加载soundpool

可扩展列表视图在 android 的片段活动中不起作用

带有共享元素的 Android 片段转换

片段不能转换为 android.app.activity