的塞纳里奥: 的
所以我试图通过将一行代码组合成一行来简化设置大量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();
),可以简化我的代码。有什么方法可以在括号内创建一个新的List吗?
答案 0 :(得分:1)
语法
makeTextViewsInvisible(new List())
不正确。
您显然不了解List初始化的语法。
如果你想在给定类型的列表中插入三个元素(在你的情况下,我认为它是List<TextViews>
)你必须初始化它(类型TextViews
的列表)。请注意,您可能不希望实例化List,因为它是一个接口,您必须实现List接口的每个方法,例如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));
答案 1 :(得分:0)
如果要使用这个库,你可以这样做...... org.apache.commons
然后应该可以像这样调用你的方法。
List<String> newList = ListUtils.union(list1,list2);
makeTextViewsInvisible(ListUtils.union(t1,t2,t3));