如何在 flutter 中从我的列表中获取变量
how to get the variable from my list in flutter
当我想从我的列表中 select 时,我没有得到这个消息的变量:词汇实例。
color: (_selectedItems.contains(HomePage.vocabularyList[index])) ? Colors.blue.withOpacity(0.5) : Colors.transparent,
//select and import to a category
child: ListTile(
//to remove
onTap: (){
if(_selectedItems.contains(HomePage.vocabularyList[index])){
setState(() {
_selectedItems.removeWhere((val) => val == HomePage.vocabularyList[index]);
});}},
//to add
onLongPress: (){
//print(HomePage.vocabularyList[index].CategoryId);
if(! _selectedItems.contains(HomePage.vocabularyList[index])){
setState(() {
_selectedItems.add(HomePage.vocabularyList[index]);
print(HomePage.vocabularyList[index]);
});}
},
title: _showWords(index),
),);
输出为:
I/flutter ( 338): Instance of 'Vocabulary'
因为你的Vocabulary
class没有.toString()
方法。
您可以尝试使用
来显示 class 的其中一项属性
print(Homepage.vocabularyList.elementAt(index).word);
其中 word
是您 Vocabulary
class
的 String
属性
为了打印对象,您应该覆盖 toString() 方法。示例代码:
class Vocabulary{
int id;
String text;
String language;
Vocabulary(this.id, this.text, this.language);
@override
String toString() {
return 'Vocabulary{id: $id, text: $text, language: $language}';
}
}
当我想从我的列表中 select 时,我没有得到这个消息的变量:词汇实例。
color: (_selectedItems.contains(HomePage.vocabularyList[index])) ? Colors.blue.withOpacity(0.5) : Colors.transparent,
//select and import to a category
child: ListTile(
//to remove
onTap: (){
if(_selectedItems.contains(HomePage.vocabularyList[index])){
setState(() {
_selectedItems.removeWhere((val) => val == HomePage.vocabularyList[index]);
});}},
//to add
onLongPress: (){
//print(HomePage.vocabularyList[index].CategoryId);
if(! _selectedItems.contains(HomePage.vocabularyList[index])){
setState(() {
_selectedItems.add(HomePage.vocabularyList[index]);
print(HomePage.vocabularyList[index]);
});}
},
title: _showWords(index),
),);
输出为:
I/flutter ( 338): Instance of 'Vocabulary'
因为你的Vocabulary
class没有.toString()
方法。
您可以尝试使用
print(Homepage.vocabularyList.elementAt(index).word);
其中 word
是您 Vocabulary
class
String
属性
为了打印对象,您应该覆盖 toString() 方法。示例代码:
class Vocabulary{
int id;
String text;
String language;
Vocabulary(this.id, this.text, this.language);
@override
String toString() {
return 'Vocabulary{id: $id, text: $text, language: $language}';
}
}