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

  • Dave Wallace

    Dave Wallace

    27 Kasım 2007
  • Joshua Kywn

    Joshua Kywn

    17 Mayıs 2010
  • уσ ρℓz sυв ιℓℓ sυв вαcқ

    уσ ρℓz

    14 EKİM 2010