为android应用程序设置文件

为android应用程序设置文件,android,file,xamarin.android,appsettings,android-assets,Android,File,Xamarin.android,Appsettings,Android Assets,我有一个android应用程序的XML设置文件。 发布应用程序时,它具有一些必须随应用程序发布的默认值。用户更改设置后,必须更改此设置文件的值。 我使用一个XML资产文件来实现这个特性。 此文件有一些默认值。通过发布一个应用程序,它也被复制到设备中。但是当我写到这个文件并返回时,似乎这个文件从未更改过。 我使用文件管理器,查看设备上的文件,发现该文件从未更改过,并且具有默认值。 我使用的是monondroid,这是我在xmlsetting文件中编写的代码: public bool writeTo

我有一个android应用程序的XML设置文件。 发布应用程序时,它具有一些必须随应用程序发布的默认值。用户更改设置后,必须更改此设置文件的值。 我使用一个XML资产文件来实现这个特性。 此文件有一些默认值。通过发布一个应用程序,它也被复制到设备中。但是当我写到这个文件并返回时,似乎这个文件从未更改过。 我使用文件管理器,查看设备上的文件,发现该文件从未更改过,并且具有默认值。 我使用的是monondroid,这是我在xmlsetting文件中编写的代码:

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 ;
            }

        }

这有什么问题吗?

有什么特别的原因不使用内置设备来实现这一点吗

我检索任何更改的持久性值,如下所示:

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();

我发现要实现设置页面并使用应用程序设置,最好的方法是使用“来自首选项”。有关更多信息,请参阅:


但是,如果任何实体想要实现配置文件,则可以为此使用资产。在资产文件中写入和读取必须重写应用程序类,并将资产文件复制到sd或设备内存中的该类的副本中。之后,您可以使用该文件。

我需要添加一个prefEditor.Commit();PutString命令后的行,使值保持不变。