将数据加载到内容提供商

时间:2013-03-13 15:46:24

标签: android android-contentprovider

我在Google电子表格中列出了很长的单词及其定义。将此数据加载到内容提供商的最佳方式是什么。

1 个答案:

答案 0 :(得分:1)

您应该从sdk示例中查看名为“Searchable Dictionary”的Android示例项目。您可以使用Android sdk管理器下载示例。该示例的功能类似于您要完成的操作。

他们有一个名为definitions.txt的文件,其中的单词及其定义位于资源下名为“raw”的文件夹中。然后在他们的SqliteOpenHelper类中,他们在一个单独的线程中加载onCreate方法中的单词。

以下是他们正在运行的方法的片段。

private void loadWords() throws IOException {
            Log.d(TAG, "Loading words...");
            final Resources resources = mHelperContext.getResources();
            InputStream inputStream = resources.openRawResource(R.raw.definitions);
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

            try {
                String line;
                while ((line = reader.readLine()) != null) {
                    String[] strings = TextUtils.split(line, "-");
                    if (strings.length < 2) continue;
                    long id = addWord(strings[0].trim(), strings[1].trim());
                    if (id < 0) {
                        Log.e(TAG, "unable to add word: " + strings[0].trim());
                    }
                }
            } finally {
                reader.close();
            }
            Log.d(TAG, "DONE loading words.");
        }