Ich habe eine Hauptaktivität, die 2 Fragmente hat. Die Hauptaktivität hat eine SearchView
in der Aktionsleiste. Beide Fragmente haben eine Liste mit einer großen Anzahl von Strings, List<String>
.Übergeben von Suchdaten an durchsuchbare Aktivität
Die Strömung ist:
Benutzer gibt Fragment I -> Wählt einen String (lässt Selection1 sagen) -> Basierend auf Selection1 eine Liste von Strings im zweiten Fragment aufgefüllt wird - -> Hier wählt der Benutzer einen zweiten String ---> Processing basierend auf diesen beiden Strings.
Nun, da sowohl die Fragmente eine große Anzahl von Zeichenfolgen enthalten, gibt der Benutzer eine Abfrage in der SearchView
, die die Liste filtert und reduziert sie auf eine kleinere Liste im SearchableActivity
angezeigt.
Nun ist das Problem, wie die SearchableActivity
Zugang zu diesen beiden List<String>
erhält, um sie basierend auf der Abfrage zu filtern und eine reduzierte Liste für den Benutzer anzuzeigen.
Zeit, was ich getan habe, ist onSearchRequested
außer Kraft gesetzt und die Daten als
@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;
}
Gibt es eine bessere Art und Weise oder Standard-Weg passieren, durch die dieses Problem also eine Implementierung gehandhabt werden kann, mit der Daten beruhen, von meiner MainActivity
bis SearchableActivity
?
Bearbeiten: Hinzufügen von Code. Zeigt an, wie Daten in Fragment
festgelegt werden. onDataReceived
wird von der HttpManager
aufgerufen, die die Daten empfängt.
@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);
}
Möge dieser Link Ihnen helfen –
prat
Können Sie Ihren Code zeigen, wie Sie die Daten erhalten und anzeigen und dann die Daten bekommen Der Benutzer hat bitte ausgewählt? Es wird leichter sein, das spezifisch zu beantworten, als eine allgemeine Antwort zu schreiben. –
@Heyyou Data ist im Grunde 'List', die in Letters enthalten ist, sagen Sie Fragment A. Aber SearchableActivity hat keinen Zugriff auf diese Liste. Ich weiß nicht, welchen Code ich hier einfügen muss, um dies weiter aufzuklären. –
unrealsoul007