我有一个REST方法将结果返回为“ Res:” 2“。现在我需要用值1,2填充微调器。如果REST方法将结果返回为” Res:“ 3”,则微调器值必须为1,2,3。
这是我已经实现的代码。但是微调框仅显示
的2个Integer[] items = new Integer[]{Integer.valueOf(user2.getString("Res"))};
ArrayAdapter<Integer> adapter = new ArrayAdapter<Integer>(MainActivity.this, android.R.layout.simple_spinner_item, items);
cboFloorLevel.setAdapter(adapter);
注意:user2是一个JSONObject
答案 0 :(得分:0)
尝试
List<Integer> numbers = new ArrayList<>();
int item = Integer.valueOf(user2.getString("Res"));
for(int i=1; i<item+1; i++){
numbers.add(i)
}
ArrayAdapter<Integer> adapter = new ArrayAdapter<Integer>(MainActivity.this,
android.R.layout.simple_spinner_item, numbers);
cboFloorLevel.setAdapter(adapter);
答案 1 :(得分:0)
尝试此代码
int end_value = Integer.valueOf(user2.getString("Res"));
Integer[] items = new Integer[]{end_value};
for(int i=0;i<end_value;i++){
items[i] = i+1;
}
ArrayAdapter<Integer> adapter = new ArrayAdapter<Integer>(MainActivity.this, android.R.layout.simple_spinner_item, items);
cboFloorLevel.setAdapter(adapter);
答案 2 :(得分:0)
找到了我的解决方案: 您需要从java8导入数组:
import java.util.Arrays;
然后可以将字符串转换为int,创建数组,并使用传递给Arrays.setAll()的lambda填充该数组:
int maxValue = Integer.parseInt(user2.getString("Res"));
int[] items = new int[maxValue];
Arrays.setAll(array, i -> i + 1);
ArrayAdapter<Integer> adapter = new ArrayAdapter<Integer>(MainActivity.this, android.R.layout.simple_spinner_item, items);
cboFloorLevel.setAdapter(adapter);
答案 3 :(得分:0)
我从问题中了解到json响应是否为
{"Res:"3"}
,您需要使用1,2,3.
int item = Integer.valueOf(user2.getString("Res"));
ArrayList <Integer>items = new ArrayList<>();
for(int j=1; j < item+1 ; j++){
items.add(j);
}
ArrayAdapter<Integer> adapter = new ArrayAdapter<Integer>(MainActivity.this,
android.R.layout.simple_spinner_item, items);
cboFloorLevel.setAdapter(adapter);