Android:扩展和转换片段问题
Posted
技术标签:
【中文标题】Android:扩展和转换片段问题【英文标题】:Android: Extending and casting Fragment issue 【发布时间】:2014-09-15 16:17:08 【问题描述】:我正在尝试创建一个 ViewPager,其中包含此 tutorial 之后的几个片段。问题是Eclipse说下面的语句有错误:
Fragment f = new MyFragment();
但是 MyFragment 扩展了 Fragment 类,所以出现这样的错误有点奇怪。以下是MyAdapter
和MyFragment
类的代码:
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:扩展和转换片段问题的主要内容,如果未能解决你的问题,请参考以下文章