Hallo in meinem Projekt habe ich eine Objektklasse namens "Program" mit vielen Werten wie einem, ein Array namens "Category" gemacht. Alle Programme werden durch eine ListView
angezeigt und haben eine festgelegte Kategorie Spinner
im Layout (mit dem Zweck, die Programme mit den passenden Kategorien zu kategorisieren).Filtern einer ListView von Objekten mit einem Spinner um einen Wert innerhalb des Objekts für Android
Ich habe dieses Stück Code:
final ArrayAdapter spinnerAdapter = new ArrayAdapter(getActivity(), R.layout.layout_spinner, MainActivity.categories); //MainActivity.categories is an array filled with strings
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String text = spinner.getSelectedItem().toString();
listAdapter.getFilter().filter(text);
listAdapter.notifyDataSetChanged();
}
Program.java
public class Program {
public String programName;
public ArrayList<String> categories;
.....
public ArrayList<String> getCategories() {
return categories;
}
public String toString() {
return programName;
}
}
aber nur, Filter nach dem Text auf der Liste, wie kann ich es filtern erhalten, indem die Category
Variable in der Liste der Programme?
Sie müssen mehr zeigen, Programmklasse Kategorie und auch, wie Sie den Spinner auffüllen. Die Art und Weise, wie U es tun würde, besteht darin, nach Kategorien fast genauso zu filtern wie mit dem Text. Bis ich mehr sehe ist schwer eine richtige Lösung zu geben. –
@AndreiT Ich habe gerade den Beitrag bearbeitet, der mehr Code hinzufügt. Ich glaube nicht, dass das Filtern einer Variablen dasselbe ist wie das Filtern des Textes, da diese Filtermethode nur zum Text – user2514575
aufgefordert wird. Geben Sie ein Beispiel dafür, wie Sie nach Kategorie filtern möchten. Weil ich nicht so sicher bin, habe ich verstanden, was du erreichen willst. –