为Android应用程序设置文件
问题描述:
我有一个用于我的android应用程序的XML设置文件。 应用程序发布时,它有一些默认值必须随应用程序一起发布。在用户更改设置后,必须更改此设置文件的值。 我使用XML资产文件来实现此功能。 该文件有一些默认值。通过发布应用程序,它也被复制到设备中。但是当我写入这个文件并回来时,似乎该文件从未改变过。 我使用一个文件管理器,并查看我的文件在设备上,看到这个文件从未改变,并有它的默认值。 我使用monondroid,这是我用在我的xmlsetting文件编写代码:为Android应用程序设置文件
public bool writeToFile (string newXmlContent)
{
try {
Stream sw= Application .Context .OpenFileOutput (AppConstants .xmlSettingFileName ,
FileCreationMode .Private );
StreamWriter stw= new StreamWriter (sw);
stw.Write (newXmlContent);
stw.Flush();
XmlContent = newXmlContent ;
stw.Close();
sw=null;
return true;
} catch (Exception ex) {
Common .HandleException (ex);
return false ;
}
}
这有什么错呢?
答
我发现,要实现设置页面,并使用应用程序设置的最佳方法是从首用。欲了解更多信息,请参阅:
developer.android.com/design/patterns/settings.html
developer.android.com/guide/topics/ui/settings.html
但是,如果任何机构希望实现一个配置file.can资产使用此propose.to读写资产文件必须重写应用程序类和复制资源文件中oncereate这个类的SD或设备记忆。之后你可以使用这个文件。
答
有没有特别的原因不使用内置设施?
我检索任何变化的持续性值是这样的:
var prefs = Application.Context.GetSharedPreferences("MyApp", FileCreationMode.Private);
var somePref = prefs.GetString("PrefName", null);
来存储它们:
var prefEditor = prefs.Edit();
prefEditor.PutString("PrefName", "Some value");
prefEditor.Commit();
我需要添加一个prefEditor.Commit();在PutString命令之后的行来创建值棒。 – Fontanka16
干杯;更新。 – manadart