TableRow tableRow = new TableRow(getContext());
List<File> threeFiles = listOfFiles.subList(i, i+2);
threeFiles.forEach(action ->  tableRow.addView(new ImageView(getActivity().getApplicationContext()).setBackground(Drawable.createFromPath(action.getAbsolutePath()))));


在最后一行,它说ViewGroup中的addView(android.view.View)无法应用于(void)。
如何使用Java 8 ForEach将带有文件源的Views添加到表行?我正在尝试更多地使用Java 8 Streams以使代码更简洁

最佳答案

您的问题是通过在末尾添加setBackground使该行返回空,因为setBackground返回空,您可能需要像这样吐出一行:

threeFiles.forEach(action -> {
            ImageView imageView = new ImageView(getActivity().getApplicationContext());
            imageView.setBackground(Drawable.createFromPath(action.getAbsolutePath());
            tableRow.addView(imageView);
        });

关于java - 使用Java 8 forEach向表行添加 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59010592/

10-08 21:53
查看更多