من یه لیست از مپ ها دارم که در حالت عادی میتونم راحت مپ ها رو از لیست بخونم
اما وقتی لیست رو توی فایل با دستور file.writelist ذخیره میکنم و با دستور file.readlist میخونمش نمیتونمم مپ ها رو بخونم
نمونه کد و ارور رو ملاحظه کنید
Sub Process_Globals
Dim list As List
Dim map,map2 As Map
End Sub
Sub Globals
End Sub
Sub Activity_Create(FirstTime As Boolean)
list.Initialize
map.Initialize
map.Put("keh1","val1")
map.Put("keh2","val2")
map.Put("keh3","val3")
map.Put("keh4","val4")
map2.Initialize
map2.Put("keh1","val1")
map2.Put("keh2","val2")
map2.Put("keh3","val3")
map2.Put("keh4","val4")
list.Add(map)
list.Add(map2)
File.WriteList(File.DirInternal,"list.txt",list)
list.Clear
list=File.ReadList(File.DirInternal,"list.txt")
For i=0 To list.Size-1
Dim tempmap As Map
map=list.Get(i)
Log(map.Get("keh1"))
Log(map.Get("keh2"))
Log(map.Get("keh3"))
Log(map.Get("keh4"))
Next
End Sub
خروجی در لاگ بدون اینکه لیست رو توی فایل ذخیره کنم و بخونم
java.lang.ClassCastException: java.lang.String cannot be cast to anywheresoftware.b4a.objects.collections.Map$MyMap
at test.list.main._activity_create(main.java:378)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:186)
at test.list.main.afterFirstLayout(main.java:102)
at test.list.main.access$000(main.java:17)
at test.list.main$WaitForLayout.run(main.java:80)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
نیاز دارم به ذخیره مپ ها در لیست که دیگه از دیتا بیس استفاده نکنم
سوال
mehran3d 75
سلام و خسته نباشید
من یه لیست از مپ ها دارم که در حالت عادی میتونم راحت مپ ها رو از لیست بخونم
اما وقتی لیست رو توی فایل با دستور file.writelist ذخیره میکنم و با دستور file.readlist میخونمش نمیتونمم مپ ها رو بخونم
نمونه کد و ارور رو ملاحظه کنید
Sub Process_Globals Dim list As List Dim map,map2 As Map End Sub Sub Globals End Sub Sub Activity_Create(FirstTime As Boolean) list.Initialize map.Initialize map.Put("keh1","val1") map.Put("keh2","val2") map.Put("keh3","val3") map.Put("keh4","val4") map2.Initialize map2.Put("keh1","val1") map2.Put("keh2","val2") map2.Put("keh3","val3") map2.Put("keh4","val4") list.Add(map) list.Add(map2) File.WriteList(File.DirInternal,"list.txt",list) list.Clear list=File.ReadList(File.DirInternal,"list.txt") For i=0 To list.Size-1 Dim tempmap As Map map=list.Get(i) Log(map.Get("keh1")) Log(map.Get("keh2")) Log(map.Get("keh3")) Log(map.Get("keh4")) Next End Sub
خروجی در لاگ بدون اینکه لیست رو توی فایل ذخیره کنم و بخونم
((( یعنی با حذف
File.WriteList(File.DirInternal,"list.txt",list) list.Clear list=File.ReadList(File.DirInternal,"list.txt")
)))))
val1 val2 val3 val4 val1 val2 val3 val4
ارور در صورتی که لیست رو توی یه فایل ذخیره کنم بعد از فایل بخونم
یعنی با استفاده از
File.WriteList(File.DirInternal,"list.txt",list) list.Clear list=File.ReadList(File.DirInternal,"list.txt")
java.lang.ClassCastException: java.lang.String cannot be cast to anywheresoftware.b4a.objects.collections.Map$MyMap at test.list.main._activity_create(main.java:378) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at anywheresoftware.b4a.BA.raiseEvent2(BA.java:186) at test.list.main.afterFirstLayout(main.java:102) at test.list.main.access$000(main.java:17) at test.list.main$WaitForLayout.run(main.java:80) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
نیاز دارم به ذخیره مپ ها در لیست که دیگه از دیتا بیس استفاده نکنم
لینک ارسال
به اشتراک گذاری در سایت های دیگر
1 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.