android - Notify all adapters using Tablayout and Recyclerview -
im using recyclerview adapter on 3 different fragments: "overview", "income", "spending" in tablayout. fragments holds list , shows data sqlite db depending on if income or spending (or all), problem when remove 1 item , notify updates on current shown fragment.
how should think if want update recyclerviews/adapters , lists once remove item in lets "overview" (which shows items)?
you can send broadcast , receive them in fragments notifydatasetchanged()
while removing items send broadcast
intent intent = new intent("key_to_identify_the_broadcast"); intent.putextra("refresh", true); context.sendbroadcast(intent); and every fragment create broadcast receiver
private final broadcastreceiver mhandlemessagereceiver = new broadcastreceiver() { @override public void onreceive(context context, intent intent) { boolean refresh = intent.getbooleanextra("refresh",false); if(refresh){ notifydatasetchanged(); } //you can call of methods using value use case } }; you need register broadcast in oncreateview() of fragment
intentfilter filter = new intentfilter("key_to_identify_the_broadcast"); getactivity().getapplicationcontext(). registerreceiver(mhandlemessagereceiver, filter); you need unregister in ondestroy() of fragment
@override public void ondestroy() { try { getactivity().getapplicationcontext(). unregisterreceiver(mhandlemessagereceiver); } catch (exception e) { log.e("unregister error", "> " + e.getmessage()); } super.ondestroy(); } you can implement same broadcast receiver fragments want refresh list
Comments
Post a Comment