无法从 android.support.v4.app.Fragment 转换为 android.app.Fragment
我正在做我的第一个Android应用程序,并希望直接进入ICS API。到目前为止,我已经使用ActionBar创建了一个应用程序,其中使用Viewpager和Fractions创建了可滑动的选项卡。
但是,我确实遇到了一些错误,我不断返回。
根据我如何实现它,它总是不断回到“类型不匹配”错误:“无法从android.support.v4.app.Fragment转换为android.app.Fragment”。我已尝试删除对任何一个的所有导入引用,并且当我仅使用TabListener,FragmentActivity和我的两个Fractions中的android.support.v4.app.Fragment时,会出现此错误。
该错误发生在我的选项卡管理器中:
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.Activity;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.util.Log;
public class TabListener implements ActionBar.TabListener {
private android.app.Fragment fragment;
private Activity activity;
private ViewPager pager;
private FragmentTransaction ft;
public TabListener(Activity activity, Fragment fragment, ViewPager pager) {
this.activity = activity;
this.fragment = fragment;
this.pager = pager;
}
@Override
public void onTabSelected(Tab tab, android.app.FragmentTransaction ft){
if (fragment == null) {
ft.add(fragment, null);
} else {
ft.attach(fragment);
}
}
@Override
public void onTabReselected(Tab tab, android.app.FragmentTransaction ft){
// TODO Auto-generated method stub
}
@Override
public void onTabUnselected(Tab tab, android.app.FragmentTransaction ft){
// TODO Auto-generated method stub
}
}
通过删除“android.app.FragmentTransaction ft”,仅将其替换为“FragmentTransaction ft”,问题就消失了。然后出现新的问题:
TabListener 类型的方法 onTabReselected(ActionBar.Tab, FragmentTransaction) 必须覆盖或实现超类型方法 TabListener.java
TabListener 类型的方法 onTabSelected(ActionBar.Tab, FragmentTransaction) 必须覆盖或实现超类型方法 TabListener.java
TabListener 类型的 TabUnselected(ActionBar.Tab, FragmentTransaction) 方法必须覆盖或实现超类型方法 TabListener.java
TabListener 类型必须实现继承的抽象方法 ActionBar.TabListener.onTabReselected(ActionBar.Tab, FragmentTransaction) TabListener.java
TabListener 类型必须实现继承的抽象方法 ActionBar.TabListener.onTabSelected(ActionBar.Tab, FragmentTransaction) TabListener.java
TabListener 类型必须实现继承的抽象方法 ActionBar.TabListener.onTabUnselected(ActionBar.Tab, FragmentTransaction) TabListener.java
这是怎么回事?
如您所知,我是Java和Android开发的新手。我觉得我很接近,但我无法解决这个问题。我不明白为什么它想要“从android.support.v4.app.Fragment转换为android.app.Fragment,而我甚至没有在任何地方导入android.app.Fragment。
我想这与使用兼容性包有关。(在为最新版本的 SDK 创建应用时,我是否必须使用此程序包?