質問編集履歴
1
質問を追加させてもらいました。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Flutter で
|
1
|
+
Flutter で List型のListをShared_Preference で setStringList を行いたいです
|
test
CHANGED
@@ -1,40 +1,39 @@
|
|
1
1
|
### 実現したいこと
|
2
|
-
Flutter で変数をfor文で大量生成したいです。
|
3
|
-
Flutter で
|
2
|
+
Flutter で List型のListをShared_Preference で setStringList を行いたいです。
|
4
|
-
手動でする方法しかわからず、手動でListを作成し、手動でList型のListに登録しています。
|
5
3
|
|
4
|
+
### 発生しているエラー
|
5
|
+
以下のようなエラーが発生し、shared_preference に書き込めません。
|
6
|
+
```
|
7
|
+
21:39: Error: The argument type 'List<dynamic>' can't be assigned to the parameter type 'List<String>'.
|
8
|
+
- 'List' is from 'dart:core'.
|
9
|
+
prefs.setStringList("list$i", set.elementAt(i));
|
10
|
+
^
|
11
|
+
```
|
6
12
|
### 該当のソースコード
|
7
|
-
|
8
13
|
```dart
|
9
14
|
import 'package:flutter/material.dart';
|
15
|
+
import 'package:shared_preferences/shared_preferences.dart';
|
10
16
|
|
11
17
|
void main() {
|
12
18
|
runApp(const MyApp());
|
13
19
|
addList();
|
14
20
|
}
|
15
|
-
List<String>
|
21
|
+
List<String> stringList = ["目標を入力","目標を入力","目標を入力"];
|
16
|
-
List<String> formTxts2 = ["目標を入力","目標を入力","目標を入力",];
|
17
|
-
List<String> formTxts3 = ["目標を入力","目標を入力","目標を入力",];
|
18
|
-
List<String> formTxts4 = ["目標を入力","目標を入力","目標を入力",];
|
19
|
-
List<String> formTxts5 = ["目標を入力","目標を入力","目標を入力",];
|
20
|
-
List<String> formTxts6 = ["目標を入力","目標を入力","目標を入力",];
|
21
|
-
List<String> formTxts7 = ["目標を入力","目標を入力","目標を入力",];
|
22
|
-
|
23
22
|
final set = <List>{
|
24
23
|
};
|
25
24
|
void addList(){
|
26
25
|
for(var i=1;i<=7;i++){
|
26
|
+
set.add(["目標を入力","目標を入力","目標を入力"]);
|
27
|
-
|
27
|
+
//set.add(stringList);としても同様のエラーが発生しました。
|
28
|
+
}
|
29
|
+
print(set.elementAt(0)[0]);//テスト用
|
30
|
+
}
|
31
|
+
Future<void> writeData() async{
|
32
|
+
final SharedPreferences prefs = await SharedPreferences.getInstance();
|
33
|
+
for(var i=1;i<=7;i++){
|
34
|
+
prefs.setStringList("list$i", set.elementAt(i));
|
28
35
|
}
|
29
36
|
|
30
|
-
set.add(formTxts1);
|
31
|
-
set.add(formTxts2);
|
32
|
-
set.add(formTxts3);
|
33
|
-
set.add(formTxts4);
|
34
|
-
set.add(formTxts5);
|
35
|
-
set.add(formTxts6);
|
36
|
-
set.add(formTxts7);
|
37
|
-
print(set.elementAt(0)[0]);//テスト用
|
38
37
|
}
|
39
38
|
class MyApp extends StatelessWidget {
|
40
39
|
const MyApp({super.key});
|
@@ -53,6 +52,9 @@
|
|
53
52
|
}
|
54
53
|
|
55
54
|
```
|
55
|
+
### 試したこと
|
56
|
+
The argument type 'List<dynamic>' can't be assigned to the parameter type 'List<String>'.というエラーが出たので、set.add(stringList);のようにString型で宣言した配列をsetに直接追加してみたのですが、結局追加されるとList<dynamic>になるようで、
|
57
|
+
同様のエラーが発生しました。
|
56
58
|
### 補足情報(FW/ツールのバージョンなど)
|
57
59
|
|
58
60
|
Flutter version 3.3.0 を使用しています。
|