android - Update RecyclerView with new entries in SQLite database -
i have app making main page shows of recent score predictions user has made. if user wants add new one, press plus button , dialog comes user can enter new information.
all user's data in sqlite database, how can update recyclerview new/updated user history on return dialog?
the main activity:
package com.winansbros.soccerpredictor; import android.app.activity; import android.content.context; import android.content.intent; import android.database.cursor; import android.os.*; import android.support.v7.widget.cardview; import android.support.v7.widget.linearlayoutmanager; import android.support.v7.widget.recyclerview; import android.util.log; import android.view.view; import android.widget.button; import android.widget.imageview; import android.widget.textview; import java.util.arraylist; import java.util.hashmap; import java.util.list; import java.util.map; import com.google.android.gms.ads.adrequest; import com.google.android.gms.ads.adview; import com.google.android.gms.analytics.googleanalytics; import com.google.android.gms.analytics.tracker; import com.parse.findcallback; import com.parse.parse; import com.parse.parseexception; import com.parse.parseobject; import com.parse.parsequery; public class history extends activity { context ctx = this; adview madview; adrequest adrequest; cardview gotwcardview; textview gotwhometeam; textview gotwawayteam; textview gotwscore; imageview gotwteamhome; imageview gotwteamaway; imageview plusbutton; final int request = 1; public static googleanalytics analytics; public static tracker tracker; databaseoperations dop; private recyclerview mrecyclerview; private recyclerview.adapter madapter; private recyclerview.layoutmanager mlayoutmanager; list<string> hometeams; list<string> awayteams; list<string> scores; list<integer> homeimages; list<integer> awayimages; public map<string, integer> map = new hashmap<>(); public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_history); analytics = googleanalytics.getinstance(this); analytics.setlocaldispatchperiod(1800); tracker = analytics.newtracker("xxxx"); tracker.enableexceptionreporting(true); tracker.enableadvertisingidcollection(true); tracker.enableautoactivitytracking(true); tracker.setscreenname("main screen"); parse.enablelocaldatastore(this); parse.initialize(this, "xxxx", "xxxx"); hometeams = new arraylist<>(); awayteams = new arraylist<>(); scores = new arraylist<>(); homeimages = new arraylist<>(); awayimages = new arraylist<>(); setmap(); dop = new databaseoperations(ctx); cursor cr = dop.getinformation(dop); if(cr.movetofirst()) { { string currenthome = cr.getstring(1); hometeams.add(currenthome); homeimages.add(map.get(currenthome)); string currentaway = cr.getstring(2); awayteams.add(currentaway); awayimages.add(map.get(currentaway)); scores.add(cr.getstring(3)); log.d("cloud files", "object id set"); } while (cr.movetonext()); string[] mydataset = new string[hometeams.size()]; mydataset = hometeams.toarray(mydataset); string[] mydataset2 = new string[awayteams.size()]; mydataset2 = awayteams.toarray(mydataset2); string[] mydataset3 = new string[scores.size()]; mydataset3 = scores.toarray(mydataset3); log.d("progress", "dont worry"); integer[] mydataset4 = new integer[hometeams.size()]; mydataset4 = homeimages.toarray(mydataset4); integer[] mydataset5 = new integer[awayteams.size()]; mydataset5 = awayimages.toarray(mydataset5); madapter = new myadapter(mydataset, mydataset2, mydataset3, mydataset4, mydataset5); } cr.close(); dop.close(); mrecyclerview = (recyclerview) findviewbyid(r.id.my_recycler_view); mlayoutmanager = new linearlayoutmanager(ctx); mrecyclerview.sethasfixedsize(true); mrecyclerview.setlayoutmanager(mlayoutmanager); mrecyclerview.setadapter(madapter); log.d("progress", "checkpoint"); madview = (adview) findviewbyid(r.id.adview); adrequest = new adrequest.builder() .build(); madview.loadad(adrequest); new thread(new runnable() { @override public void run() { ****stuff unrelated question**** }).start(); plusbutton.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { intent intent = new intent(history.this, newprediction.class); startactivity(intent); } }); } public void setmap() { map.put("arsenal", r.drawable.arsenal); ... map.put("villarreal", r.drawable.villarreal); } }
thank in advance, , please comment if need more code
i think wanted return results newprediction.class. use startactivityforresult() in history. setresult() in predictions return result
class history { ... ... private static final int perform_prediction_request = 26252; plusbutton.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { intent intent = new intent(history.this, newprediction.class); startactivityforresult(intent, perform_prediction_request); } }); @override public void onactivityresult(int requestcode, int resultcode, intent data) { super.onactivityresult(requestcode, resultcode, data); if (perform_prediction_request == requestcode) { if (activity.result_ok == resultcode) { data.getstring("datakey") } } } } class newprediction { ... intent intent = new intent(); intent.putextra("datakey", "somedata_that_is_somehow_related_to_prediction"); setresult(activity.result_ok, intent) ... }
Comments
Post a Comment