我在Android应用程序中工作,我正在寻找如何在for循环后显示数组列表中的结果,我想在转换函数之后在另一个列表视图中设置每个值(heure,minute ...) BCD to Integer)我和我一起工作过。谢谢您的帮助!!
Integer[] array = {heure, minute, seconde, jour, mois, year};
ArrayList<Integer> list = new ArrayList<>();
/*Collections.addAll(list, array);*/
for (int value : list) {
temp = value;
temp >>= 4;
result = temp * 10;
temp = value & 0b00001111;
result += temp;
this.total= result;
list.add(this.total);
}
tvGetdata.setText(list.toString());
答案 0 :(得分:1)
您在空列表中使用foreach。 所以你的代码会忽略它。 尝试使用你的阵列。
Integer[] array = {heure, minute, seconde, jour, mois, year};
ArrayList<Integer> list = new ArrayList<>();
for (int value : array) {
temp = value;
temp >>= 4;
result = temp * 10;
temp = value & 0b00001111;
result += temp;
this.total= result;
list.add(this.total);
}
tvGetdata.setText(list.toString());
答案 1 :(得分:0)
你在这里滥用了两种数据结构。
Array
是一个固定长度的项目列表
List
是一个项目列表(至少在标准实现中)总是试图使其容量适应项目数
Array
因此,总之,通过将这些用法转换为结构,您将获得更好的结果(您将在下面找到原因)。
// we exactly know our initial input, so we can use an Array here
Integer[] array = {heure, minute, seconde, jour, mois, year};
// we don't know how many items will go in here, so we use a List for now
ArrayList<Integer> list = new ArrayList<>();
// you can loop over an Array just as over a List
for (int value : array) {
// TODO do your calculations and save them in this.result
// the ArrayList provides this neat utility to add an element
// it will automatically increase its capacity, if required
list.add(this.result);
}
tvGetdata.setText(list.toString());
当然,您可以将array
变量替换为另一个List
,并将元素从List
设置为List
。基本结构是一样的。