如何在 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'

因为你的Vocabularyclass没有.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}';
  }
}