2016-01-01 6 views
-2

Я отчасти новичок в разработке Android, но я закодировал много C# (WinF, WPF). Я создал приложение для викторины (немецкие слова) для приложения, и я не совсем уверен, как хранить и загружать словари (файл, где строки содержат 2 слова). Каков наилучший способ хранения этих словарей? Я немного искал Google, но не нашел точных ответов. В настоящий момент я генерирую слова непосредственно в коде. Спасибо!Каков наилучший способ хранения текстовых данных?

+0

Вы можете сохранить его в папке assests и может получить доступ к файлам –

+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 из папки assests

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

Смежные вопросы