2013-04-02 27 views
6

我想存儲大約一千個字符串(如一些引號)並使用它們填充ListViewListFragment。這些字符串是靜態的,一旦加載就不可能改變。在android中存儲靜態數據的最快/首選方式是什麼?

這是一個只讀數據,用戶不應該被允許操縱它。

我應該使用XML文件還是文本文件存儲它們,或者可能是最佳方法?

+1

使用sqlite數據庫 – Raghunandan

+0

這些字符串在運行時是否更改?你是否需要無法訪問源的人能夠編輯它們? –

+0

字符串在運行時不會改變。我也不喜歡用戶編輯它們。只是一種只讀的東西。 –

回答

3

使用Sqlite數據庫即是高效和安全的方式

+0

但是,如果用戶意外刪除數據庫,它會不會導致任何問題?請您詳細說明爲什麼Sqlite只是不清楚它。 –

+1

只有根用戶才能刪除數據庫,因爲它存儲在應用程序的受保護目錄中。與其他提到的方法相比,使用數據庫有幾個優點:它優化了查詢,使您可以輕鬆地爲列表視圖實現過濾器等。它也不要求您將所有字符串存儲在內存中。 – Thrakbad

+0

但是你不能查詢'SharedPreferences'你可以查詢SQLite數據庫的方式 – Thrakbad

0

它永遠不會改變?

字符串數據類型?

你在構建應用程序時是否已經有了它們?

只需將它們保存在資源,字符串中;就像你存儲像'appname'這樣的值 你可以保存一個由換行符(或逗號,冒號等)分隔的巨大字符串變量,然後使用java的字符串工具或標記化來獲取每個子字符串,或者根據模式它有

+0

是的,我會讓他們在發展過程中。你的想法聽起來不錯,但只有一個疑問,像這樣存儲數千個數據會有效嗎? –

+0

嗯,我會考慮getResources()將加載內存中的所有變量。如果這是一個問題,你需要分離成多個文件,只加載你真正需要的文件 - 如果可以的話。 但是再一次,一千字就是幾個Kb ..如果你的字符串是wordsefficiency不會成爲問題 – quinestor

1

如果數據不打算在整個應用開發爲什麼ü不會與任何訪問修飾符使用靜態最終方式改變爲u喜歡和u可以在你的應用程序,如大小關心使用它們字符串數據的一千或十萬不會影響,因爲我們也知道字符串是不可變的,不能改變整個應用程序的生活和一個更多的東西與聲明最後所以重新初始化將不會在那裏,但只有重用.Declare所有的字符串作爲類的一部分,所以它加載時類加載即一次。如果有更多的事情讓我知道。

0

只要將它們放在您存儲在資產文件夾中的文本文件中即可。如果你把它們逐行放入,你已經有了你的物品。

相關問題