0

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;
                }
            }
        });
Andrewino
  • 41
  • 1
  • 7

1 Answers1

3

Android does support Java 8 from version 7 (Nougat).

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { 

       // do fillter code here
 }else{
      show some toast message or thing you need to do
 }
}
haresh
  • 1,424
  • 2
  • 12
  • 18