2016-01-01 194 views
-2

我對Android開發並不陌生,但我編寫了很多C#(WinF,WPF)。我爲應用程序創建了一個測驗應用程序(德語單詞),我不太確定如何存儲和加載字典(一個文件,其中行包含2個單詞)。什麼是存儲這些字典的最佳方式?我搜索了一下,但沒有找到確切的答案。目前,我直接在代碼中生成單詞。 謝謝!什麼是存儲文本數據的最佳方式?

+0

您可以將其存儲在資產產生的文件夾,並可以訪問這些文件 –

+0

SharedPreferences。 –

回答

1

正如你剛纔的鍵值對,我會建議從你的數據創建一個json,存儲到assests文件夾並在運行時使用。

例如, CountyCode.json

[ 
    { 
    "country_name": "Canada", 
    "country_code": 1 
    }, 
    { 
    "country_name": "United States of America", 
    "country_code": 1 
    }, 
    { 
    "country_name": "US Virgin Islands", 
    "country_code": 1 
    }, 
    { 
    "country_name": "Russia", 
    "country_code": 7 
    }, 
    { 
    "country_name": "Tajikistan", 
    "country_code": 7 
    }] 

負荷和使用下面的代碼需要時解析JSON數據。

要從入資產價值文件夾加載JSON

String countryJson = FileManager.getFileManager().loadJSONFromAsset(getActivity(), "countrycode.json");

解析JSON和使用

   try { 
        JSONArray jsonArray = new JSONArray(countryJson); 
        if (jsonArray != null) { 
         final String[] items = new String[jsonArray.length()]; 
         for (int i = 0; i < jsonArray.length(); i++) { 
          JSONObject jsonObject = jsonArray.getJSONObject(i); 
          items[i] = jsonObject.getString("country_name"); 
         } 

FileManager.java

import android.content.Context; 

import java.io.IOException; 
import java.io.InputStream; 

/** 
* Created by gaurav on 10/10/15. 
*/ 
public class FileManager { 
    static FileManager fileManager = null; 

    private FileManager(){} 

    public static FileManager getFileManager() 
    { 
     if(fileManager==null) 
      fileManager = new FileManager(); 
     return fileManager; 
    } 

    public String loadJSONFromAsset(Context context,String fileName) { 
     String json = null; 
     try { 
      InputStream is = context.getAssets().open(fileName); 
      int size = is.available(); 
      byte[] buffer = new byte[size]; 
      is.read(buffer); 
      is.close(); 
      json = new String(buffer, "UTF-8"); 
     } catch (IOException ex) { 
      ex.printStackTrace(); 
      return null; 
     } 
     return json; 
    } 
} 
+0

FileManager類從哪裏來? –

+0

爲filemanager類添加了代碼。 – CodingRat

+0

非常感謝,抱歉接受這樣的答案。我還沒有嘗試過,我今晚會試試它。 – Topna

相關問題