我使用以下内容选择在我的活动中显示哪个片段....
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Fragment fragment;
switch (position) {
case 0:
fragment = new Fragment1();
break;
case 1:
fragment = new Fragment2();
break;
case 2:
fragment = new Fragment3();
break;
default:
fragment = null;
break;
}
return fragment;
}
......一个空白且工作的片段看起来像......
public class Fragment2 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.fragment_dod, container, false);
// Do Stuff Here
return root;
}
@Override public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
// Save some state!
}
}
我的SectionsPagerAdapter错误与类型不匹配:当使用像下面的ListFragment时,无法从Fragment2转换为Fragment .......
public class Fragment2 extends ListFragment {
DemoAdapter adapter=null;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setRetainInstance(true);
if (adapter==null) {
ArrayList<Integer> items=new ArrayList<Integer>();
for (int i=0;i<25;i++) { items.add(i); }
adapter=new DemoAdapter(getActivity(), items);
}
else {
adapter.startProgressAnimation();
}
setListAdapter(adapter);
}
}
我一直在寻找一种方法来解决这个问题。有人可以建议这样做的方法,如果可能的话,我可以解释为什么,并且可以在将来尝试避免它?
由于
答案 0 :(得分:0)
我的问题的答案可以在这里找到 - Why can't I instantiate this Fragment on Android?
找出问题....我的MainActivity.java文件正在使用:
import android.support.v4.app.Fragment;和我的MainFragment.java文件 正在使用:
import android.app.Fragment;所以有一个不匹配。我正在使用ICS 4.0及更高版本是我最低的API版本。更改要导入到v4 API的所有内容解决了我的问题