ViewPagerIncidator

2 respostas
MuriloAngelo

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:

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);
			}
		});
    }
}
Minha classe PageAdapter:
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;
	}
}

Link pelo qual eu tive toda a base.

2 Respostas

ViniGodoy

Por favor, ao postar tópicos, evite destacar no título informações óbvias. Se você não precisasse de [Ajuda], nem tivesse [Dúvida], não teria aberto o tópico, certo?

MuriloAngelo

Ok, desculpe!

Criado 9 de julho de 2012
Ultima resposta 10 de jul. de 2012
Respostas 2
Participantes 2