Я не понимаю, использование фрагментов в Android, и я использую библиотеку просмотра (https://github.com/JakeWharton/Android-ViewPagerIndicator)
Я пытаюсь использовать фрагменты с этим. У меня есть фрагментация этого кода:
public class FragmentosActivity extends FragmentActivity {
private PagerAdapter mPagerAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.fragmentos_layout);
// initialsie the pager
this.inicializaPaginas();
}
//Este metodo inicia todos los fragments
private void inicializaPaginas() {
FragmentAdapter adapter =
new FragmentAdapter(getSupportFragmentManager());
adapter.addFragment(new Mapa());
adapter.addFragment(new Cercanos());
ViewPager pager = (ViewPager) super.findViewById(R.id.indicator);
pager.setAdapter(this.mPagerAdapter);
}
FragmentAdapter
public class FragmentAdapter extends FragmentPagerAdapter {
List<Fragment> fragments = null;
public FragmentAdapter(FragmentManager fm) {
super(fm);
fragments = new ArrayList<Fragment>();
}
public void addFragment(Fragment fragment){
fragments.add(fragment);
}
@Override
public Fragment getItem(int arg0) {
return fragments.get(arg0);
}
@Override
public int getCount() {
return fragments.size();
}
}
и адаптер ViewPager (это адаптер для библиотеки)
public class ViewPagerAdapter extends PagerAdapter implements TitleProvider
{
private static String[] titles = new String[]
{
"Listado",
"Mapa"
};
private final Context context;
public ViewPagerAdapter( Context context )
{
this.context = context;
}
@Override
public String getTitle( int position )
{
return titles[ position ];
}
@Override
public int getCount()
{
return titles.length;
}
@Override
public Object instantiateItem( View pager, int position )
{
LinearLayout v = (LinearLayout) LayoutInflater.from(this.context).inflate(R.layout.cercanos, null);
if (position == 0) {
v = (LinearLayout) LayoutInflater.from(this.context).inflate(R.layout.cercanos, null);
} else {
v = (LinearLayout) LayoutInflater.from(this.context).inflate(R.layout.mapa, null);
}
((ViewPager) pager).addView(v, 0);
return v;
}
@Override
public void destroyItem( View pager, int position, Object view )
{
}
@Override
public boolean isViewFromObject( View view, Object object )
{
return view.equals( object );
}
@Override
public void finishUpdate( View view ) {}
@Override
public void restoreState( Parcelable p, ClassLoader c ) {}
@Override
public Parcelable saveState() {
return null;
}
@Override
public void startUpdate( View view ) {}
}
, а фрагмент_лайта:
?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.viewpagerindicator.TitlePageIndicator
android:id="@+id/indicator"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
style="@style/Widget.IndicadorTitulo" />
/>
</LinearLayout>
, mapa.class и cercanos.class - это класс, расширяющий фрагмент без кода.
Приложение не показывает замечание, оно вылетает и показывает мне "не удается создать экземпляр класса com.rbrlnx.controles.FragmentAdapter; нет пустого конструктора"
Я ищу пример учебного пособия, но все очень трудно выучить и выучить (я испанский). Кто-нибудь может мне помочь, пожалуйста? Если у вас есть простой код для изучения фрагментов, он будет идеальным.
Спасибо