Tabs 使用ActionBarSherlock起始片段时发生ClassNotFoundException,并带有;“新实例”;
我正在将Android 4.x代码转换为使用ActionBarSherlock,这样我们的应用程序就可以与Gingerbread兼容 到目前为止还不错,但它无法启动片段的新实例 My Main活动扩展了SherlockFragmentActivity实现了Tabs 使用ActionBarSherlock起始片段时发生ClassNotFoundException,并带有;“新实例”;,tabs,android-fragments,actionbarsherlock,Tabs,Android Fragments,Actionbarsherlock,我正在将Android 4.x代码转换为使用ActionBarSherlock,这样我们的应用程序就可以与Gingerbread兼容 到目前为止还不错,但它无法启动片段的新实例 My Main活动扩展了SherlockFragmentActivity实现了ActionBar.TabListener 当案例为0时,代码在此失败: @Override public Fragment getItem(int position) { switch (position) {
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);
}
如果case为0,则应该初始化片段,但我得到以下异常:
ClassNotFoundException
。我唯一的其他线索是:
在PathClassLoader
中的“this”和在“name”中显示的是android.app.ActionBar$TabListener
我想这与TabListener或未正确包含/加载的库有关我已经清理了项目
片段项目片段扩展了SherlockListFragment
newInstance非常严格:
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;
}
事实证明,尽管MainActivity没有对ActivityY的引用,但是ActivityY没有SherlockFragment代码这一事实使它失败了。要以不同的方式描述这一点: MainActivity使用ProjectsFragment,它是一个列表 当您单击ProjectsFragment中的列表时,它将调用ListsActivity ListsActivity引用ItemsFragment 在主活动开始工作之前,我必须将ItemsFragment更改为Sherlock代码。在使用寻呼机、选项卡和片段时,Java似乎在某种程度上“向前看”