【发布时间】:2017-02-16 09:59:07
【问题描述】:
当我运行 Android 应用程序时,它运行良好。当我更改一些数据并单击“保存更改”按钮时出现问题。然后再次运行显示旧数据的应用程序。
我需要我的应用程序加载我保存的一个。
我使用的是 Delphi Xe8->Multi-Device App。
对于 Android,我将远程路径设置为 assets\internal -->.\assets\internal\
保存更改按钮代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
CDS.SaveToFile(TPath.GetDocumentsPath + PathDelim + 'users.cds');
end;
OnCreate 代码:
procedure TForm1.FormCreate(Sender: TObject);
begin
CDS.LoadFromFile(TPath.GetDocumentsPath + PathDelim + 'users.cds'); //Embarcadero\Studio\Projects\example\Client\Android\Debug\Client\assets\internal
end;
【问题讨论】:
-
您是否尝试在表单(或调试器)上显示表达式
TPath.GetDocumentsPath + PathDelim + 'users.cds'的值并确认它在FormCreate和Button1Click中是相同的? -
是的,它们是相同的[FormCreate 和 ButtonClick]。
-
好吧,CDS 的 SaveToFile 和 LoadFromFile 正常工作没有任何问题,但我只在 Windows 下使用过它们。也许您的问题是特定于 Android 的,与用户权限或其他问题有关。您可以将 TMemo 的内容保存到同一个文件夹并重新加载并保存对它的更改等吗?
-
顺便说一句,你可以看看这个 q:stackoverflow.com/questions/18857936/…,尤其是 Leslie Kaye 的回答。
-
我放了 Memo1.lines.add(TPath.Combine(TPath.GetDocumentsPath, 'users.cds'))。我得到了这个路径:/data/data/com.embarcadero.Client/files/users.cds