我在radiogroup中有一个单选按钮,如果我单击它,我将获得该值并将其显示为Toast消息,然后将值存储到Array中。
这是我的代码。
此代码具有向单选按钮的文本获取值的功能。
/Home/Get
在获得Array中的值之后,我想对新变量中的数据求和。
答案 0 :(得分:1)
在setOnCheckedChangeListener
之外声明一个列表,每次单击单选按钮时,将该元素添加到列表中:
ArrayList mArrayList = new ArrayList();
mRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
RadioButton checkedRadioButton = (RadioButton) view.findViewById(i);
String text = checkedRadioButton.getText().toString();
mArrayList.add(Integer.parseInt(text));
Toast.makeText(getContext(), text, Toast.LENGTH_SHORT).show();
}
});
并且比要获取列表的总和:
如果您使用的是Java 8:
int sum = mArrayList .stream().mapToInt(Integer::intValue).sum();
如果不是:
int sum = 0;
for(Integer iterator: mArrayList){
sum+=iterator
}
//之后您的款项准备好了
就这样
修改
只需确保所有单选按钮都是数字。如果您遇到空数字或字符,您的Android应用将崩溃,给出NumberFormatException
答案 1 :(得分:0)
要将值存储在数组中,请使用 ArrayList
function divisors(integer) {
var result = [];
for(let i = 2; i < integer; i++) {
if(integer % i == 0) {
result.push(i)
}
}
return result;
};
console.log(divisors(12));
每次要存储一个int值时,请使用:
filter()
在您的情况下,将int值替换为const divisors = num => [...Array(num)]
.map((x,i) => i)
.filter(x => num % x === 0).slice(1)
console.log(divisors(12));
对于求和过程:使用如下简单的迭代数组
ArrayList<Integer> myList = new ArrayList<Integer>();