2012-06-14 116 views
2

我正在制作我的第一个android应用程序。我想在一个活动中保存一个字符串数组,然后在第二个活动中,我想将这些字符串显示为一个列表。我正在使用API​​平台2.2与API 8所以我不能使用putStringSet()。有什么方法可以将我的数据保存为我的应用中的文本文件?然后可能是我可以只要在用户添加一个新的字符串时在该文件中添加一个新行。而在做列表视图时,我可以在新行的基础上解析它并创建字符串数组。 感谢您的帮助。我应该如何在我的android应用程序中保存我的应用程序数据?

回答

3

使用文件处理。 易于使用的初学者和高效率为您的目的。

http://developer.android.com/guide/topics/data/data-storage.html#filesInternal

+0

我使用了内部存储。但每次我在文件中写入内容时,都会删除旧数据。我也想要旧数据 – Piscean

+0

您正在以错误的文件模式打开文件。您每次创建一个新文件,截断所有旧保存的数据。在APPEND模式下打开它,你的数据一定会被保留下来。 – Swayam

+0

FileOutputStream fos = openFileOutput(FILENAME,Context.MODE_APPEND); – Swayam

2

Intent中有一种方法putStringArrayListExtra("id", ArrayList list)在启动之前使用。然后在从意图启动的活动中,使用getStringArrayList("id")

例如:

Intent intent = new Intent(MainActivity.this.getApplicationContext(), NewActivity.class); 
intent.putStringArrayListExtra("id", yourArrayList) 
MainActivity.this.startActivity(intent); 

然后在NewActivity onCreate()方法

ArrayList<String> list = getIntent().getExtras().getStringArrayList("id"); 
+0

此String arraylist应该像用户历史记录。无论用户做什么都应该保存,然后显示在列表中。通过这种方式,我们将发送一个数组列表,该列表将在该意图之前创建。那么如果我们有一些旧字符串以及哪个用户创建了什么。我们如何获取? – Piscean

+0

然后你应该把文本写到一个文件中,然后解析成一个ArrayList,然后像你想要的那样传递它。 – Demonick

0

你为什么要使用的文件? 只需检查sharedPreferences和sqliteDb 它可能适用于您..共享偏好易于处理

+0

我没有尝试sqliteDb。但我检查了sharedPreferences。在我的情况下,sharedPreferences不是一个好的解决方案。 – Piscean

相关问题