В основном я хочу вызвать функцию со значением индекса. Поэтому я должен назвать это в виджете. Но я не могу понять. Я не мог сделать это с initState, потому что нет никакого значения индекса в initState (насколько я знаю). Вот код:
List<TextEditingController> kolar =[
TextEditingController(),
];
List<Column> todoos = [
Column(),
];
Future<void> _setStringFromSharedPref(int deger) async{
final prefs = await SharedPreferences.getInstance();
prefs.setString("laylay", kolar[deger].text);
print(prefs.getString("laylay"));
}
Future<String> _getStringFromSharedPref() async{
final prefs = await SharedPreferences.getInstance();
return prefs.getString("laylay") ?? "hey hoy";
}
void yapa(int deger){
_getStringFromSharedPref().then((s){
kolar[deger].text=s;
print(s);
});
}
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.tealAccent[700],
appBar: AppBar(
title: Text("To do"),
centerTitle: true,
backgroundColor: Colors.teal[700],
),
body: ListView.builder(
itemCount: todoos.length,
itemBuilder: (context,index){
return Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Slidable(
actionPane: SlidableDrawerActionPane(),
actionExtentRatio: 0.25,
child: Container(
height: 60,
child: Card(
color: Colors.teal[700],
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
TextField(
controller: kolar[index],
style: TextStyle(
fontSize: 20,
color: Colors.white
),
onChanged: (text) {
_setStringFromSharedPref(index);
},
),
],
),
),
),
),
],
);
}
),
Я хочу вызвать функцию yapa со значением индекса. Как я могу это исправить?