2012-12-06 67 views
0

我有一個用於我的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 ; 
      } 

     } 

這有什麼錯呢?

回答

0

我發現,要實現設置頁面,並使用應用程序設置的最佳方法是從首用。欲瞭解更多信息,請參閱:

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

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

但是,如果任何機構希望實現一個配置file.can資產使用此propose.to讀寫資產文件必須重寫應用程序類和複製資源文件中oncereate這個類的SD或設備記憶。之後你可以使用這個文件。

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

我需要添加一個prefEditor.Commit();在PutString命令之後的行來創建值棒。 – Fontanka16

+1

乾杯;更新。 – manadart

相關問題