我的应用有这种外观
它似乎是一个包含多个TableRows的TableLayout。在我的活动中,每个TableRow都有3个视图:ImageView,TextView和一个Button。
用户可以通过输入他想要的文本并按下按钮来设置ImageView和TestView的内容。
我将此数据存储在stringArray变量中,如果手机未重启或应用未关闭(forceClose),则可以正常工作
如果发生这两种情况之一,我会丢失所有数据。
我一直试图通过SharedPreferences存储我的StringArrays,但我不知道何时应加载首选项,无论是在OnCreate()还是OnResume()或OnStart方法()。
另一个问题是如何定义数组。我用这个:
String [] titulo = new String [500];
我不知道每次启动活动时是否创建了此字符串。因为我想要的是加载前一个String(来自SharedPreferences)并添加一些更多的条目,而不是每次重启电话时都创建新的条目。
你认为我需要一个SQL数据库,或者这个StringArrays没问题。
谢谢。
答案 0 :(得分:1)
您应该切换到使用数据库,因为您有一个大小为500的数组,将来可能会增加。
但是,如果要继续使用SharedPreferences,则应在onPause()和onStop()方法中编写数据,并在对其运行操作之前使用if else语句查看数据是否为null。如果数据为null,则在继续之前从SharedPreferences中读取它。