0

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

        }

这有什么问题?

4

2 回答 2

2

有什么特别的理由不为此使用内置设施吗?

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

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();
于 2012-12-07T07:25:32.053 回答
0

我发现要实现设置页面并使用应用程序设置,最好的方法是使用 Preferences.for 更多信息,请参阅:

developer.android.com/design/patterns/settings.html

developer.android.com/guide/topics/ui/settings.html

但是如果任何机构想要实现一个配置文件。可以为此提议使用资产。在资产文件中写入和读取必须覆盖应用程序类并将资产文件复制到 sd 或设备内存中此类的一次创建中。之后你可以工作有了这个文件。

于 2012-12-07T12:00:16.530 回答