塞纳里奥:
所以我试图简化设置大量TextViews
的用法通过将大量代码行合并为一行来隐藏,因此决定创建一种获取 List<TextView>
的方法并使它们全部隐形。我做了一个测试类来显示错误。 (问题如下)
方法:
private void makeTextViewsInvisible(List<TextView> listOfTextViews){
int i= 0;
while(i < listOfTextViews.size()){
listOfTextViews.get(i).setVisibility(View.INVISIBLE);
i++;
}
}
使用方法:
makeTextViewsInvisible(new List<t1,t2,t3>()) ;
//Dose'nt work?
//I don't want to define : (List<TextView> a = new ...) And add TextViews manually (a.add(TextView1)...)
//I want to add all three TextViews in one line of code inside the brackets
问题是,我无法创建 new List
在括号内,我需要制作一个全新的 List
并添加所有 TextViews
手动(通过使用 List.add();
),女巫并没有简化我的代码。有什么办法可以在括号内创建一个新的列表吗?
最佳答案
语法
makeTextViewsInvisible(new List())
不正确。
您显然不了解 List 初始化的语法。
如果您想将三个元素插入给定类型的列表(在您的情况下,我相信它将是 List<TextViews>
),您必须初始化它(类型 TextViews
的列表)。请注意,您可能不想实例化 List,因为它是一个接口(interface),您必须实现 List 接口(interface)的每个方法,例如 add(), get(), indexOf()
等等我建议您通过ArrayList
作为你的函数参数。假设 t1,t2,t3
已定义 TextViews
类型的对象。实例化ArrayList<TextViews>
您需要以下语法:
ArrayList<TextViews> exampleList= new ArrayList<>(Arrays.asList(t1,t2,t3));
您必须传递一个数组作为列表的构造函数,您可以使用 Arrays.asList()
轻松完成此操作静态方法。话虽如此,方法调用的语法如下所示:
makeTextViewsInvisible(new ArrayList<TextViews>(Arrays.asList(t1,t2,t3));
关于java - 无法将新列表放入方法括号内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49353687/