I'm trying to filter my List, and i don't really know what is wrong. I'm using Java 1.8 for lambda functions, my project API i think it's 21; Error: No interface method stream()Ljava/util/stream/Stream; in class Ljava/util/List; or its super classes
(declaration of 'java.util.List' appears in /system/framework/core-libart.jar) at com.example.revizii2020eu.ListaActivity.modifyMyAdapter(ListaActivity.java:98) at com.example.revizii2020eu.ListaActivity.access$200(ListaActivity.java:28) at com.example.revizii2020eu.ListaActivity$3.onClick(ListaActivity.java:121)
@RequiresApi(api = Build.VERSION_CODES.N)
private void modifyMyAdapter(final String myFirstLetter) {
ArrayList<Revizie> newList = (ArrayList<Revizie>) lista.stream().filter(r -> r.getTip().equalsIgnoreCase(myFirstLetter)).collect(Collectors.toList());
CustomAdapter newAdapter = new CustomAdapter(getApplicationContext(), newList);
mListview.setAdapter(newAdapter);
newAdapter.notifyDataSetChanged();
}
private void filter(){
Etletter = findViewById(R.id.Etsearch); //edittext
btnFilter = findViewById(R.id.buttonFilter);
btnFilter.setOnClickListener(new View.OnClickListener() { //buton de filtu
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
public void onClick(View v) {
String myFilterLetter = Etletter.getText().toString();
switch (myFilterLetter){
case "N" :
modifyMyAdapter("Normala");
break;
case "C" :
modifyMyAdapter("Complexa");
break;
case "M" :
modifyMyAdapter("Medie");
break;
case "T" :
CustomAdapter newAdapter = new CustomAdapter(getApplicationContext(), lista);
mListview.setAdapter(newAdapter);
newAdapter.notifyDataSetChanged();
break;
}
}
});