我试图将一个列表的值复制到另一个列表中,我使用三个按钮:第一个按钮将一个值附加到mylist中,第二个按钮清除mylist,第三个按钮将mynewlist中的值复制到mylist中。
我尝试过这样做:
List<String> mylist = [
'Albania',
'Andorra',
'Armenia',
'Austria',
'Azerbaijan',
'Belarus',
'Belgium',
'Albania',
'Andorra',
'Armenia',
'Austria',
'Azerbaijan',
'Belarus',
'Belgium',
];
List<String> mynewlist = [
'Albania',
'Andorra',
'Armenia',
'Austria',
'Azerbaijan',
'Belarus',
'Belgium',
'Albania',
'Andorra',
'Armenia',
'Austria',
'Azerbaijan',
'Belarus',
'Belgium',
];
Padding(
padding: const EdgeInsets.all(5.0),
child: Row(
children: <Widget>[
Expanded(
child: FlatButton(
onPressed: () {
setState(() {
print('clicked 1st');
print(mylist.length);
print(mynewlist.length);
mylist.add('sdsds');
});
},
child: Container(
child: Column(
children: <Widget>[
Image.asset(
'images/bulb.png',
width: 100,
height: 100,
),
Text('bulb')
],
),
),
),
),
Expanded(
child: FlatButton(
onPressed: () {
setState(() {
print('clicked 2nd');
print(mylist.length);
print(mynewlist.length);
//after i set mylist = mynewlist; when i click this button it clears the old and new list.
mylist.removeRange(0, mylist.length);
});
},
child: Container(
child: Column(
children: <Widget>[
Image.asset(
'images/bulb.png',
width: 100,
height: 100,
),
Text('bulb')
],
),
),
),
),
Expanded(
child: FlatButton(
onPressed: () {
setState(() {
print('clicked 3rd');
print(mylist.length);
print(mynewlist.length);
mylist = mynewlist;
});
},
child: Container(
child: Column(
children: <Widget>[
Image.asset(
'images/bulb.png',
width: 100,
height: 100,
),
Text('bulb')
],
),
),
),
),
],
),
)
初始时,它可以完美地运行。第二次单击第二个按钮时,它会清除mylist和mynewlist。
我该如何在不清空新列表的情况下复制第二个列表的值?