【发布时间】:2015-08-27 12:06:52
【问题描述】:
当我发布我的项目时,我遇到了这个错误:
错误:避免在片段中使用非默认构造函数:使用默认构造函数加上
Fragment#setArguments(Bundle)而不是[ValidFragment]
请帮帮我,这是我的代码
public class Main2 extends Activity implements ActionBar.TabListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
mSectionsPagerAdapter = new SectionsPagerAdapter(getApplicationContext(),getFragmentManager());
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mSectionsPagerAdapter);
mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
actionBar.setSelectedNavigationItem(position);
}
});
for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) {
actionBar.addTab(
actionBar.newTab()
.setIcon(mSectionsPagerAdapter.getDrawableId(i))
.setTabListener(this));
}
}
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
mViewPager.setCurrentItem(tab.getPosition());
}
和
public class SectionsPagerAdapter extends FragmentPagerAdapter {
@Override
public Fragment getItem(int position) {
switch (position){
case 0:
return new Z_Hello(mcontext);
case 1:
return new X_Board(mcontext);
case 2:
return new X_Board_2(mcontext);
case 3:
return new X_Board3(mcontext);
}
return null;
}
}
和片段
public class X_Board extends Fragment{
@Override
public View onCreateView(final LayoutInflater inflater,ViewGroup container, Bundle savedinstance) {
final View view = inflater.inflate(R.layout.board_list, container, false);
return view
}
所以我试试
(fragment)
public static X_Board newInstance(int h){
X_Board ff = new X_Board(context);
Bundle args = new Bundle();
args.putInt("num",h);
ff.setArguments(args);
return ff;
}
(activity)
Fragment fragment = X_Board.newInstance(1);
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.pager, fragment);
ft.addToBackStack(null);
ft.commit();
(fragment oncreate)
mNum = getArguments() !=null ? getArguments().getInt("num") : 1;
但仍然显示错误..
请帮助我,我找到所有问题,但没有解决它帮助我..
【问题讨论】:
标签: java android android-fragments