Gente estou com um probleminha na implementação de um ViewPagerIndicadot, zylinc.
O método init(para iniciar o indicator) requer três parâmetros, dois inteiros e o ultimo é
um PageInfoProvider, só que não da pra fazer isso por que o meu adapter(classe PageView
que estende PagerAdapter e implementa PageInfoProvider) não se encaixa no lugar, quando
eu coloco ele lá, da a alernativa de fazer um cast para (PageInfoProvider) o que não está certo!
O que eu devon fazer?
Minha classe Mensagem:
[code]public class Mensagem extends FragmentActivity{
PagerAdapter adapter;
ViewPager myPager;
ViewPagerIndicator indicator;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mensagem);
indicator = (ViewPagerIndicator) findViewById(R.id.indicator);
adapter = new PageAdapter(getSupportFragmentManager());
myPager = (ViewPager) findViewById(R.id.viewPager);
myPager.setAdapter(adapter);
myPager.setCurrentItem(1);
myPager.setOnPageChangeListener(indicator);
indicator.init(1, adapter.getCount(), (PageInfoProvider) adapter); // Isso não era pra ser assim! Todo erro que da está nessa linha!
Resources res = getResources();
Drawable prev = res.getDrawable(R.drawable.indicator_prev_arrow);
Drawable next = res.getDrawable(R.drawable.indicator_next_arrow);
indicator.setArrows(prev, next);
Button voltar = (Button) findViewById(R.id.button1);
voltar.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent ITelaInicial = new Intent(Mensagem.this, MainActivity.class);
startActivity(ITelaInicial);
}
});
}
}[/code]
Minha classe PageAdapter:
[code]public class PageAdapter extends FragmentPagerAdapter implements PageInfoProvider{
public PageAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return 2;
}
@Override
public Object instantiateItem(final View collection, int position) {
View v = new View(collection.getContext());
LayoutInflater inflater = (LayoutInflater) collection.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
switch (position) {
case 0:
v = inflater.inflate(R.layout.tela01, null, false);
break;
case 1:
v = inflater.inflate(R.layout.tela02, null, false);
break;
case 2:
v = inflater.inflate(R.layout.tela03, null, false);
break;
}
((ViewPager) collection).addView(v, 0);
return v;
}
@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView((View) arg2);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == ((View) arg1);
}
@Override
public Parcelable saveState() {
return null;
}
@Override
public Fragment getItem(int arg0) {
return null;
}
@Override
public String getTitle(int pos) {
// TODO Auto-generated method stub
return null;
}
}[/code]