2012-10-16 43 views
0

我将Android 4.x代码转换为使用ActionBarSherlock,以便我们的应用程序可以与姜饼兼容。ClassNotFoundException当使用ActionBarSherlock启动Fragment与“newInstance”

目前为止还不错,但无法启动片段的新实例。

我的主活动延伸SherlockFragmentActivity工具ActionBar.TabListener

代码在这里失败,这里的情况是0:

@Override 
    public Fragment getItem(int position) { 
     switch (position) { 
     case 0: 
      mFragmentProjects = ProjectsFragment.newInstance(position); 
      return mFragmentProjects;              
     case 1: 
      mFragmentContacts = FragmentPeople.newInstance(position, 0); 
      return mFragmentContacts;    
     } 
     return ArrayListFragment.newInstance(position); 
    } 

在哪里的情况下为0它应该初始化片段,但我得到这个异常: ClassNotFoundException。唯一的其他线索,我拥有的是: “本”在PathClassLoader和“名”,它说android.app.ActionBar$TabListener

我想这已经是与TabListener或库不正确包含/加载? 我已经清理了项目

片段ProjectsFragment扩展为SherlockListFragment

的newInstance是相当straitforward:

static ProjectsFragment newInstance(int num) { 
    ProjectsFragment f = new ProjectsFragment(); 

    // Supply num input as an argument. 
    Bundle args = new Bundle(); 
    args.putInt("num", num); 
    f.setArguments(args); 

    return f; 
} 

回答

0

事实证明,虽然MainActivity没有提及ActivityY,这一事实本身ActivityY没有足够的SherlockFragment代码使它失败。以不同的方式描述了这一点:

MainActitivy使用ProjectsFragment当您单击ProjectsFragment它调用ListsActivity ListsActivity引用ItemsFragment

我不得不改变ItemsFragment夏洛克代码之前MainActivity将工作清单上这是一个列表 。当您使用寻呼机和选项卡和片段时,似乎Java会以某种方式“向前看”。

相关问题