Java android中的导航抽屉和页面查看器
编辑: 在推荐使用TabStrip之后,我一直在搜索它,我决定使用它,而不是我试图做的。 所以问题仍然是相同但不同的代码: 在我的导航抽屉中,我有一个开关,它给Java android中的导航抽屉和页面查看器,java,android,android-fragments,navigation-drawer,swipeview,Java,Android,Android Fragments,Navigation Drawer,Swipeview,编辑: 在推荐使用TabStrip之后,我一直在搜索它,我决定使用它,而不是我试图做的。 所以问题仍然是相同但不同的代码: 在我的导航抽屉中,我有一个开关,它给片段片段一个片段值,当我用片段活动扩展我的TodayFragment时,我无法进行最后一次赋值,因为它抛出了一个类型不匹配错误 下面是代码的一部分(TodayFragment现在是TodayFrag,因为我在尝试不删除类的事情): 现在我有了课堂上的PagerTabStrib: 公共类TodayFrag扩展了FragmentActivit
片段片段
一个片段值,当我用片段活动
扩展我的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
类扩展/实现AB
类时,A
类(子类)与B
类(基类)具有“相同的”
属性:
公共类A扩展B
==>B=新A()代码>是可能的
因此,请尝试删除所有的导入
,然后执行CtrlShift以组织导入。然后选择同一类片段。问题可能会消失。您能在出现问题的地方发布代码吗?!它是发布的,它是代码今天片段的第一个重要部分
已经扩展了片段
,无需再次铸造它!你说得对。不知道我在想什么。他可能在他的活动中导入不同的Fragment
类和TodayFragment
(本机片段与支持片段)。只是一个猜测。不是那样,我试过以防万一,但它不能解决任何问题。我想这个错误可能是因为机具部分,但不确定如何使其工作。当我想在片段中添加选项卡时,我通常使用带有PagerTabStrip
的ViewPager
。不熟悉ActionBar.TabListener
。你能给我更多的信息吗?也许我可以改变它,我做了你说的一切,但我改变了ActionBar.TabListener,因为我想使用TabStrip,但这一个使用FragmentActivity,我无法让它工作;我将编辑和更新问题,使其易于理解。
fragment = (Fragment) new TodayFragment();