DropdownButton导致空项目异常

时间:2020-01-26 01:35:20

标签: flutter

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

1 个答案:

答案 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());
     });
     },
     )