Java android中的导航抽屉和页面查看器

Java android中的导航抽屉和页面查看器,java,android,android-fragments,navigation-drawer,swipeview,Java,Android,Android Fragments,Navigation Drawer,Swipeview,编辑: 在推荐使用TabStrip之后,我一直在搜索它,我决定使用它,而不是我试图做的。 所以问题仍然是相同但不同的代码: 在我的导航抽屉中,我有一个开关,它给片段片段一个片段值,当我用片段活动扩展我的TodayFragment时,我无法进行最后一次赋值,因为它抛出了一个类型不匹配错误 下面是代码的一部分(TodayFragment现在是TodayFrag,因为我在尝试不删除类的事情): 现在我有了课堂上的PagerTabStrib: 公共类TodayFrag扩展了FragmentActivit

编辑:

在推荐使用TabStrip之后,我一直在搜索它,我决定使用它,而不是我试图做的。 所以问题仍然是相同但不同的代码: 在我的导航抽屉中,我有一个开关,它给
片段片段
一个片段值,当我用
片段活动
扩展我的
TodayFragment
时,我无法进行最后一次赋值,因为它抛出了一个类型不匹配错误

下面是代码的一部分(TodayFragment现在是TodayFrag,因为我在尝试不删除类的事情):

现在我有了课堂上的PagerTabStrib:

公共类TodayFrag扩展了FragmentActivity{}

原始问题:

我已经完成了导航抽屉,在某一点上,我切换了一个位置变量,以确定需要在视图中设置哪个片段:

Fragment fragment = null;
switch (position) {
case 0:
    fragment = new HomeFragment();
    break;
case 1:
    fragment = new OneFragment();
    break;
case 2:
    fragment = new TwoFragment();
    break;
case 3:
    fragment = new TodayFragment();
    break;
case 4:
    fragment = new Others2Fragment();
    break;

default:
    break;
}
除了TodayFragment(),所有片段都是仅扩展片段的类。TodayFragment()扩展了片段并实现了ActionBar.TabListener,因为我正在尝试在导航抽屉的一个片段中实现选项卡可切换视图:

public class TodayFragment extends Fragment implements ActionBar.TabListener {}
问题出现在代码的第一部分,它说“类型不匹配:无法从TodayFragment转换为Fragment”

我对Java知之甚少,我被卡住了

我希望有人能帮忙


提前感谢

对于片段中的选项卡,更好的方法是使用
ViewPager
PagerTabStrip
的组合,如中的示例所示

请记住,
ViewPager
来自支持库,因此您还必须使用支持库中的片段


原始(不正确)答案:

您需要将您的
今日片段
转换为
片段

fragment = (Fragment) new TodayFragment();

正如Myanimal在他的回答评论中所说,我认为您已经导入了不同类别的
片段

  • 这个
    android.app.Fragment
  • 这个
    android.support.v4.app.Fragment
您实施的
ActionBar.TabListener
或正在使用的
TabStrip
不是问题的原因

A
扩展/实现
A
B
类时,
A
类(子类)与
B
类(基类)具有
“相同的”
属性:

公共类A扩展B
==>
B=新A()是可能的


因此,请尝试删除所有的
导入
,然后执行CtrlShift以组织导入。然后选择同一类片段。问题可能会消失。

您能在出现问题的地方发布代码吗?!它是发布的,它是代码
今天片段的第一个重要部分
已经扩展了
片段
,无需再次铸造它!你说得对。不知道我在想什么。他可能在他的活动中导入不同的
Fragment
类和
TodayFragment
(本机片段与支持片段)。只是一个猜测。不是那样,我试过以防万一,但它不能解决任何问题。我想这个错误可能是因为机具部分,但不确定如何使其工作。当我想在片段中添加选项卡时,我通常使用带有
PagerTabStrip
ViewPager
。不熟悉
ActionBar.TabListener
。你能给我更多的信息吗?也许我可以改变它,我做了你说的一切,但我改变了ActionBar.TabListener,因为我想使用TabStrip,但这一个使用FragmentActivity,我无法让它工作;我将编辑和更新问题,使其易于理解。
fragment = (Fragment) new TodayFragment();