android - Passing searching data to Searchable Activity -
i have main activity has 2 fragments. main activity has searchview in action bar. both fragments have list of large number of strings, list<string>.
the flow is:
user enters fragment --> selects string (lets selection1) --> based on selection1 list of strings populated in second fragment --> here user selects second string ---> processing based on these 2 strings.
now since both fragments contain large number of strings, user enters query in searchview, filters list , reduces smaller list displayed in searchableactivity.
now problem how searchableactivity access these 2 list<string> filter them based on query , display reduced list user.
currently have done overridden onsearchrequested , pass data as
@override public boolean onsearchrequested() { bundle appdata = new bundle(); appdata.putstring(fragment_id, "fragment_a"); appdata.putstringarraylist(search_list, searchlist); startsearch(null, false, appdata, false); return true; } is there better way or standard way problem can handled i.e. implementation allows data based mainactivity searchableactivity?
edit: adding code. showing how data set in fragment. ondatareceived called httpmanager receives data.
@override public void ondatareceived(string type,final object object) { switch(type) { case popitconstants.update_list: getactivity().runonuithread(new runnable() { @override public void run() { updatecinemalist((list<string>) object); } }); break; } } public void updatedatalist(list<string> data) { this.datalist = data; spinner.setvisibility(view.gone); madapter.updatelist(datalist); }
i answered similar question few minutes ago, @ how can send list activity in android studio
i encourage rethink pattern of passing data around among activities , fragments. consider creating 1 or more data models (non-android classes) application, , making these models available android classes (activities, fragments, etc.) need them.
remove of data storage , manipulation code activities , fragments, , put model(s).
Comments
Post a Comment