问题描述
我在Flutter应用程序中从服务器中获取了以下单个字符代码,例如“ M”,“ T”或“ B”等。
M = Manual
T = Trial
B = Baking
N = N/A
S = Source
O = Other Source
现在,在列表视图中仅配置了Text()
元素,该元素必须根据检索到的代码表示“手动”,“试用”或“烘焙”等值。
如果只有2个元素可供选择,我知道如何实现三元运算符。 但是在这种情况下,有6个选项,只有一个选项可以表示。
我应该如何在Flutter ListView Builder中配置它?
child:Text('value to be represented here')
我无法理解'if-else if-else'在这里如何工作?
解决方法
使用地图。
void main() {
Map<String,String> values = {
"M": "Manual","T": "Trial","B": "Baking","N": "N/A","S": "Source","O": "Other Source",};
print(values["M"]); // Manual
print(values["O"]); // Other Source
}
,
编写如下函数:
// The code represents the single character code
String getNameFromCode(String code){
switch(code){
case 'M': return 'Manual';
case 'T': return 'Trial';
case 'B': return 'Baking';
case 'N': return 'N/A';
case 'S': return 'Source';
case 'O': return 'Other Source';
}
}
使用该功能作为文本小部件的输入:
Text(getNameFromCode(getDataFromServer()))
我假设您需要输出一个值;我不知道您为什么需要ListView
。
有关此类代码的列表:
List<String> codes = getDataFromServer()
ListView.builder(
itemCount:
itemBuilder: (ctx,i){
return Text(getNameFromCode(codes[i]));
}
)