2

您好,我是 Android 开发的新手,我决定使用 AndroidPlot 库。要创建图表,我需要输入这样的数字数组

Number[] seriesOfNumbers = {4, 6, 3, 8, 2, 10};

我需要帮助的是在我的应用程序中创建该数据。我的应用程序每天运行一次服务,我希望它收集一定数量并将其添加到此数组中。例如说这样的事情..

ArrayList<Integer> seriesOfNumbers = new ArrayList<Integer>();
seriesOfNumbers.add(5);
// Save the array

然后第二天检索该数组并向其添加另一个数字,依此类推。我读过我应该使用 SQLite,但我每天只存储一个数字。我不能每天都创建一个新数组,因为我需要前几天的数据。这样做的正确方法是什么?谢谢

编辑:

这是据我所知

public static void saveArray(Context ctx) 
{

    SharedPreferences sharedPreferences = PreferenceManager
            .getDefaultSharedPreferences(ctx);

    SharedPreferences.Editor sharedPreferencesEditor = sharedPreferences
            .edit();


    Number[] list = new Number[10];

    StringBuilder str = new StringBuilder();

    for (int i = 0; i < list.length; i++) 
    {

        str.append(list[i]).append(",");

    }


    sharedPreferencesEditor.putString("string", str.toString());

    sharedPreferencesEditor
            .commit();

}

public void getArray(Context ctx)
{
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx);
    String savedString = prefs.getString("string", "1");

    StringTokenizer st = new StringTokenizer(savedString, ",");

    for (int i = 0; i < 1; i++) 
    {
        array[i] = Integer.parseInt(st.nextToken());

    }


}

我想做的是能够通过 saveArray(Context ctx) 传递一个整数并将其添加到数组中。然后它被解析成一个字符串存储到共享首选项中,然后由 getArray(Context ctx) 检索,如果有任何意义,它会在其中重新创建为一个数组。非常感谢任何帮助注意:上面的代码导致FC

4

1 回答 1

3

尝试这样的事情:

ArrayList<Integer> seriesOfNumbers = existsList() ? loadList() : new ArrayList<Integer>();
seriesOfNumbers.add(5);
saveList(seriesOfNumbers);

你只需要实现 ...List() - 方法,也许通过使用 Sqlite。

于 2012-09-13T22:29:53.073 回答