0

我正在尝试过滤我的列表,但我真的不知道出了什么问题。我将 Java 1.8 用于 lambda 函数,我的项目 API 我认为它是 21;错误:没有接口方法stream()Ljava/util/stream/Stream;在类 Ljava/util/List 中;或其超类

('java.util.List' 的声明出现在 /system/framework/core-libart.jar 中)在 com.example.revizii2020eu.ListaActivity.modifyMyAdapter(ListaActivity.java:98) 在 com.example.revizii2020eu.ListaActivity.access com.example.revizii2020eu.ListaActivity 200 美元(ListaActivity.java:28)$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;
                }
            }
        });
4

1 回答 1

2

Android 从版本 7 (Nougat) 开始支持 Java 8。

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

       // do fillter code here
 }else{
      show some toast message or thing you need to do
 }
}
于 2020-01-26T12:02:05.407 回答