2014-04-25 61 views
0

是否可以從SD卡加載strings.xml而不是應用程序res/values/...在網絡上搜索,但沒有找到任何教程。我的想法是將xml下載到sd卡,然後將字符串元素保存到數組中。從SD卡加載strings.xml到應用程序android

public void stringsxml(){ 
     File file = new File(Environment.getExternalStorageDirectory() 
       + ".strings.xml"); 

     StringBuilder contents = new StringBuilder(); 
     try { 
       //use buffering, reading one line at a time 
       //FileReader always assumes default encoding is OK! 
       BufferedReader input = new BufferedReader(new FileReader(file)); 
       try { 
       String line = null; //not declared within while loop 
       /* 
       * readLine is a bit quirky : 
       * it returns the content of a line MINUS the newline. 
       * it returns null only for the END of the stream. 
       * it returns an empty String if two newlines appear in a row. 
       */ 
       while ((line = input.readLine()) != null){ 
        contents.append(line); 
        contents.append(System.getProperty("line.separator")); 

       } 
       } 
       finally { 
       input.close(); 
       } 
      } 
      catch (IOException ex){ 
       ex.printStackTrace(); 
      } 

      String data= contents.toString(); 

    } 

回答

0

不,這是不可能的。檢查Android decoumentation關於資源:

Android SDK工具在構建時將應用程序的資源編譯到應用程序二進制文件中。要使用資源,必須將其正確安裝在源代碼樹(在項目的res /目錄中)並構建應用程序。

資源內置於應用程序二進制文件中,您無法從文件中讀取它們。

+1

因此而不是使用strings.xml中,我們可以存儲的語言爲.sqllite數據庫和服務器 – Dimitri

+0

是更新數據庫,但你不能把它的資源。 – Szymon

1

嗯,實際上這是半可能的,但你必須創建一個派生的LayoutInflater,它將用這樣讀取的字符串替換字符串代碼。

我已經記錄了我的嘗試和失敗以及初始實施here

摘要:簡單的字符串工作,字符串數組做不

+0

根據你下載strings.xml比.sqllite好,反之亦然? – Dimitri