【问题标题】:Setting File for android applications安卓应用程序的设置文件
【发布时间】:2012-12-06 08:58:12
【问题描述】:

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

        }

这是怎么回事?

【问题讨论】:

    标签: android file xamarin.android appsettings android-assets


    【解决方案1】:

    有什么理由不为此使用内置工具?

    我像这样检索任何变化的持久性值:

    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 命令后的行以使值保持不变。
    【解决方案2】:

    我发现实现设置页面和使用应用程序设置的最佳方式是从 Preferences 中使用。有关更多信息,请参阅:

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-12
      • 2014-03-07
      • 1970-01-01
      相关资源
      最近更新 更多