SORU
12 EKİM 2011, ÇARŞAMBA


Parça görülüyor ikinci kez boştur

Ana görünümünde, farklı parçaları açık olan kısmındaki sekmeler ile parça bir arayüzü var.

Öğeleri listesi, bir parça var. Eğer kullanıcı bu listedeki öğelerden birini seçerse, başka bir parçası, yatay olarak Önceki parça listesinde tüm öğeleri arasında dolaşmayı olan bir viewpager içeren açılır. Bu harika çalışıyor.

Bu viewpager bir FragmentPagerAdapter öğeleri görüntülemek için kullanır.

Sorun kullanıcı listeden bir öğe seçer, manzaralı, sekme çubuğunda düğmesini listesine geri dönmek vurur sonra gelir, başka bir öğe seçer. Seçili nesne için ikinci kez, boş bir ekran viewpager yerine görünür. Bu durumda benim LogCat hata alıyorum.

Neden viewpager sadece ilk kez ortaya çıkıyor?

FragmentPagerAdapter:

public class ViewPagerAdapter extends FragmentPagerAdapter {
    Cursor mCursor;

    public ViewPagerAdapter(FragmentManager fm, Cursor c) {
        super(fm);
        mCursor = c;
    }

    public void changeCursor(Cursor c) {
        mCursor = c;
        this.notifyDataSetChanged();
    }

    @Override
    public int getCount() {
        if (mCursor == null) return 0;
        else return mCursor.getCount();
    }

    @Override
    public Fragment getItem(int position) {
        mCursor.moveToPosition(position);
        return TeamCardFragment.newInstance(mCursor, position);
    }
}

PagerFragment:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    Bundle bundle = getArguments();
    mCursorPosition = bundle.getInt(TeamCardCommon.BUNDLE_KEY_CURSOR_POSITION);

    View mView = inflater.inflate(R.layout.team_card_master, container, false);
    mViewPager = (ViewPager)mView.findViewById(R.id.team_card_master_view_pager);

    mAdapter = new ViewPagerAdapter(getFragmentManager(), cursor);
    new setAdapterTask().execute();

    return mView;
}

private class setAdapterTask extends AsyncTask<Void, Void, Void> {
    protected Void doInBackground(Void... params) {
        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        mViewPager.setAdapter(mAdapter);
        mViewPager.setCurrentItem(mCursorPosition);
    }
}

CEVAP
12 Aralık 2011, PAZARTESİ


Ben de aynı sorun vardı. android.support.v4.app.FragmentPagerAdapter benim PageAdapter üst sınıf android.support.v4.app.FragmentStatePagerAdapter ViewPager ekran benim sorunu çözmek için değiştirme "second time"!

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Excel Video Tutorials

    Excel Video

    6 Aralık 2012
  • Michael Neal

    Michael Neal

    2 Mayıs 2009
  • SaraBeautyCorner - Nails and Nail Art Designs, DIY, Fashion & Makeup Tutorial

    SaraBeautyCo

    7 EKİM 2012