我有一个ArrayList自定义对象.每个自定义对象都包含各种字符串和数字.即使用户离开活动然后想要稍后返回,我也需要数组停留,但是在应用程序完全关闭后我不需要数组可用.我通过这种方式保存了很多其他对象,SharedPreferences但我无法弄清楚如何以这种方式保存整个数组.这可能吗?也许SharedPreferences这不是解决这个问题的方法吗?有更简单的方法吗?
我很难为我的应用正确实现"收藏夹"功能.在对象列表中移动,用户应该能够检查/取消选中某些内容作为收藏.一旦活动进入onPause();状态,它应该保存收藏夹列表(相反,布尔标记的完整列表,表示某些东西是否是最喜欢的... true对于喜欢的,false不是喜欢的.)显然,进入的onResume();状态,清单应加载,使他们能够查看他们已经预先标记的最爱.
我认为,我的问题确实来自于列表在初始化时随机化的事实.我确定我的算法已关闭,但我已经尝试了各种各样的方法,以至于我再也看不到它了.
主要活动Java
public class MainActivity extends ActionBarActivity {
Global global_main;
@Override
protected void onCreate(Bundle savedInstanceState) {
global_main = Global.getInstance("all");
}
@Override
protected void onResume(){
super.onResume();
SharedPreferences settings = getSharedPreferences(FILE_FAVORITES, 0);
for(int index = 0; index < TOTAL_QUESTIONS; index++){
boolean favFromFile = settings.getBoolean(("savedFavorite_" + String.valueOf(index)), false);
global_main.setFav(index, favFromFile);
}
}
@Override
protected void onPause(){
super.onPause();
SharedPreferences settings = getSharedPreferences(FILE_FAVORITES, 0);
SharedPreferences.Editor editor = settings.edit();
for(int index = 0; index < TOTAL_QUESTIONS; index++){ …Run Code Online (Sandbox Code Playgroud) 我需要创建一个包含最近 5 个通话日期的数组。
我知道我必须将日期保存在数组中,但我不知道如何重新排序其他记录以将最后一次调用日期保留为第一个记录。并且始终只维护5条记录
目标是保存最后一个调用字符串并添加到数组中,之后我重新排序并仅维护 5 条记录,之后我使用 FlexJson 制作一个字符串并保存在共享首选项上。谁有这个完整的流程吗?
这是我正在做的事情,但到处都抛出错误:
节省
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss dd-MM-yyyy", Locale.getDefault());
Calendar calendar = Calendar.getInstance();
String currentDateTimeString = df.format(calendar.getTime());
List<String> textList = new ArrayList<>();
JSONSerializer ser = new JSONSerializer();
textList.add(currentDateTimeString);
String jsonText = ser.deepSerialize(textList);
editor.putString("lastCall", jsonText);
editor.commit();
Run Code Online (Sandbox Code Playgroud)
读:
String lastCall = callLogPreferences.getString("lastCall", null);
JSONDeserializer<List<String>> der = new JSONDeserializer<>();
List<String> textList = der.deserialize(lastCall);
Run Code Online (Sandbox Code Playgroud)
我正在使用 FlexJson:GSON 和 InstanceCreator 问题
它没有从字符串转换为数组列表