Android Question Cannot get list item into EditText

This is probably "blindingly obvious" to a regular user, but it's thrown me! (Programming 3 days!) Upfront, I'll say I'm using the debugger, and not a physical device if that is causing error.

Dim SavedUserData As String
Dim inUserData As List
Dim savedCopy As String ' Tried as string and as object
Dim savedTitle As Object
Dim savedKey As Object
Dim savedDesc As Object

SavedUserData = File.DirRootExternal & "user.db"
SavedUserData = File.DirRootExternal & "/user.db" 'Both options tried

If File.Exists(SavedUserData, "") = False Then
Dim userList As List
userList.Initialize
userList.AddAll(Array As String("Enter your copyright details","Enter your title","Enter your keywords","Enter your description"))

File.OpenOutput(File.DirRootExternal,"user.db",True) ' Append to list / create list
File.WriteList(File.DirRootExternal,"user.db",userList)
Else
File.OpenInput(File.DirRootExternal,"user.db")
inUserData.Initialize
inUserData=File.ReadList(File.DirRootExternal,"user.db") As List
>> photo_copy_in.Text=inUserData.Get(0)
title_in.Text=inUserData.Get(1)
key_in.Text=inUserData.Get(2)
desc_in.Text=inUserData.Get(3)
End If


LOG:
photo_copy_in.Text=inUserData.Get(0)
javac 1.7.0_76
shell\src\b4a\example\main_subs_0.java:83: error: ';' expected
_inuserdata = main.mostCurrent.__c.getField(false,"File").runMethod(false,"ReadList",(Object)(main.mostCurrent.__c.getField(false,"File").runMethod(true,"getDirRootExternal")),(Object)(RemoteObject.createImmutable("user.db")));Debug.locals.put("inUserData", _inuserdata)} BA.debugLineNum = 80;BA.debugLine="photo_copy_in.Text=inUserData.Get(0)";



What SHOULD happen is that if "user.db" doesn't exist, it creates a list, and writes that out to ???
If it DOES exist, it loads that database, and then reads the four values into strings / objects (tried both) and in the latter 4 lines loads it into EditText fields on a panel

I tried it with "DirInternal", but still stops at same line. I think it's 90% correct, just keeps fouling up with a syntax errror or something at >> These four variables are declared in Globals, and this is within Activity_Create within a FirstTime block (Report says it's missing a ";" ... but where's that coming from??

Shame, as I was going so well until this hit!!

Sorry to forum users. Just noticed there is an edit button on the original posting - presumably to add updates etc. I wil know to do that in future!

OK I ADMIT DEFEAT!!
Seems it's impossible to write back to a EditText field. Hope someone can advise whether this is simply because I need to upgrade from FREE to PAID, or whether such an action is impossible with B4A. (I've seen on StackOverflow an option called "SetText" ... but that's not on the freebie!)
 
Last edited:
I MIGHT have solved part of it.

I've now tried putting the text string into an array first, and then Add-ing the array to the userList. That SHOULD (in theory) then write the list out to ????

I use the question marks 'cos although it compiles and runs on the emulator, I've yet to locate "user.db" anywhere on PC, (unless it's coded in with the compile code? Unfortunately, although I specified "user.db", Windows "Find" gives me lots of files containing or ending with "db"

And I still can't read the data back in again - if saved at all - due to a syntax error as above!!

If File.Exists(SavedUserData, "") = False Then
Dim userList As List
userList.Initialize
Dim arr(4) As String
arr(0)="Enter your copyright details"
arr(1)="Enter your copyright details"
arr(2)="Enter your title"
arr(3)="Enter your description"
userList.Add(arr)
File.OpenOutput(File.DirInternal,"user.db",True)
File.WriteList(File.DirInternal,"user.db",userList)
 
Upvote 0
Just thought I'd try a Msgbox(SavedUserData) to locate the root memory folder. Of interest to anyone, seems that -on the trial at least - it came up with "data/data/b4a.example/files/user.db" So it MUST be stored within code since b4a.example with the dot is not a valid Windows directory name. So can't even check if that file IS being written out!

Yep, as I thought! More research shows that unlike Windows, with Android you cannot view the physical folders that MakeDir and similar create, (so how you're supposed to see what data was saved - indeed if it was saved at all - I don't know)

Whilst the free version says a folder has been created via the File.Exist option, it also tells me that I have an external SD card attached to my PC hen folder is created with DirRootExternal- which is incorrect. So does it use memory as a psuedo card cache? Who knows. Can't see anything about it in guide


Sorry for the negative tone, but after starting so well, I'm now hitting hurdle after hurdle!
 
Last edited:
Upvote 0
Top