DropdownButton导致空异常,因为我在值名称参数中传递了字符串变量。
import java.util.Scanner;
import static java.lang.System.*;
public class largestprimeofapar {
public static void main(String[] args) {
Scanner scanner = new Scanner(in);
int size = 5;//scanner.nextInt();
int i=0,c=0,a,b,j,l=size,max=0;
int[] m = new int[size*2];
int[] originalArray = {17,13,26,48,18};
int[] pairArray = new int[size*2];
//for(a = 0;a<size;a++){
// originalArray[a] = scanner.nextInt();
// }
//for(b = 0;b<originalArray.length;b++){
//out.println(originalArray[b]);
// }
for(i=0;i<=size;i++){
for(j=i+1;j<=size-1;j++){
m[c] = originalArray[i] + originalArray[j];
if(isPrime(m[c])) {
if(m[c]>max){
max = m[c];
out.println(max);
}
//out.println(m[c]);
c++;
}
}
}
}
public static boolean isPrime(int num){
int i=0,count=0;
for (i=2;i<num;i++){
if(num%i == 0){
count++;
break;
}
}
if(count == 0){
return true;
}
else{
return false;
}
}
}
如果我使用数组值:疾病中的第一个选定元素(按值:model.diseases [0] ),它也可以正常工作;如果我使用了值:model.diseases [0] ,将model.diseases [0]的值更改为“疾病”后
════════小部件库捕获的异常 ═══════════════════════════════════引发了以下断言 Building Builder(dirty):'package:flutter / src / material / dropdown.dart': 断言失败:第608行pos 15:'item == null || items.isEmpty || 值== null || items.where(((DropdownMenuItem item)=> item.value ==值)。长度== 1':不正确。
要么断言表明框架本身存在错误,要么 应该在此错误消息中提供更多的信息,以 帮助您确定并解决根本原因。在任一情况下, 请通过在GitHub上提交错误来报告此断言:
https://github.com/flutter/flutter/issues/new?template=BUG.md
答案 0 :(得分:1)
错误是因为您提供的默认值不存在于值列表中,如果要在选择任何值之前在下拉菜单中显示标签,请将初始值设置为null并使用dropdownmenu小部件的hint属性< / p>
String diseases;
DropdownButton<String>(
hint: Text("Select a disease"),
value: diseases,
items: model.diseases
.map((String value) {
return DropdownMenuItem<
String>(
value: value,
child: Text(value),
);
}).toList(),
onChanged: (d) {
setState(() {
diseases = d;
print(
diseases.toString());
});
},
)