2016-03-28 14 views
-1

ViewPager'ım ve yaklaşık 7 sayfa var. Hemen hemen tüm sayfalarda veri listesi var. Sqlite db'den aldığım veriler. Sql verileri değiştirildikten sonra verileri güncellemek için ContentProvider ve LoaderManager.LoaderCallbacks<Cursor> kullanıyorum (aka getContext().getContentResolver().notifyChange(uri, null)). Çalışır, ama ben daha esnek görünüyor ve listView ile bir sorun vardı, ancak bir sorun varsayılan imleç bağdaştırıcısı yok çünkü ListView RecycleView yerine. Github bir ama buldum ve şimdi yol aşağıdaki çalışır:contentProvider ve RecycleView'u kullan?

ContentProvider yöntemleri update, insert, query, delete sahiptir. Görünüm çağrı cihazları bir sayfada getActivity().getContentResolver().update(....); veya başka bir yöntem ve diğer sayfalarda LoaderManager (benim için olağan yaklaşım) kullanarak otomatik güncelleme.

Ama şimdi şüpheliyim:
İçerik sağlayıcısına ihtiyacım var mı? ContentProvider, üçüncü taraf uygulamalara veri sağlar, ancak kendi uygulamasında değildir ve ek yükdür.
Belki de RecyclerView verileri güncellemek için başka özelliklere ve benim yaklaşımım iyi değil?

+0

zaten bir ContentProvider'ınız varsa https://gist.github.com/Shywim/127f207e7248fe48400b veya https://github.com/blandware/android-atleap/blob/master/atleap-core /src/main/java/com/blandware/android/atleap/loader/SimpleCursorRecyclerAdapter.java – pskink

+0

teşekkürler, ama ben zaten geri dönüşüm görünümü için adaptör kullanıyorum, benim hakkımdaki soru - Bu benim durumumda ContentProvider kullanmak iyi bir yaklaşım mı? Sorularımı güncelledim. – comalex3

+0

yaklaşımınız iyi, endişe yok ... – pskink

cevap

0

CursorLoader kullanmanın daha iyi bir yol olduğunu düşünüyorum. İmleç üzerinde gözlemciyi kilitler ve yeni veri eklerseniz getContentResolver().notifyChange(uri, null);'u kullanabilirsiniz, böylece CusrorLoader otomatik olarak yeni verilerle yeni imleci alır ve yalnızca RecyclerView güncellemesi için swap kullanabilir (ancak RecyclerView dostunuz imleç ile varsayılan uygulama adaptörüne sahip değildir.) RecyclerViewCursorAdapter gibi bir şey bulmanız gerekecek.

+0

bu özel uygulama özellikleri biraz "kötü": daha iyi olanlar için benim yorum yukarıda görmek (ikinci bağlantı kullanımı çok kullanışlı olan bir "SimpleCursorAdapter" gibi bir adaptör sağlar – pskink

+0

teşekkürler Ben zaten CursorAdapter için recyclerView kullanın.Benim hakkında iyi bir yaklaşım ya da yükü ve daha iyi elle veri güncelleme yapmak ve '' getActivity(). GetContentResolver(). Update (...) '' ' – comalex3

+0

pskink, bu bağdaştırıcılar iyi, ama ben I tarif etmek benim en kolay tarifidir comalex3, sadece ContentProvider – Onregs