0
持久性我仍然在LibGdx新的Android也编程..LibGdx数据与ArrayList的
我试图创建将用于数据存储在我的应用程序 类看起来像这样
类package com.mygdx.hanoi.util;
import java.util.Map;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Preferences;
public class DataPersister2 {
public Preferences getOrCreatePreferences(String prefName){
return Gdx.app.getPreferences(prefName + ".prefs");
}
public Map getPreferencesData(Preferences prefName){
return (Map) prefName.get(); //.get(key);
}
public void clearPreferences(Preferences prefName){
prefName.clear();
}
public void insertPreferences(Preferences prefName, Map data){
prefName.put(data);
prefName.flush();
}
}
的问题是,当我尝试使用这个类,并添加一个ArrayList为它创建一个偏好,它总是说,喜好为空
DataPersister2 hs = new DataPersister2();
Preferences hScore = hs.getOrCreatePreferences("highScores");
hs.clearPreferences(hScore);
// dummy test score data
ArrayList<String[]> hsFreeMode = new ArrayList<String[]>(); // declare apa yang mau ditaruh sini, biar ga error di kemudian method
hsFreeMode.add(new String[] {"luki", "5000"});
hsFreeMode.add(new String[] {"laras", "3900"});
ArrayList hsMoveMode = new ArrayList();
hsMoveMode.add(new String[] {"cika", "6000"});
hsMoveMode.add(new String[] {"cikoo", "1000"});
Map hsMap = new HashMap();
hsMap.put("freeMode", hsFreeMode);
hsMap.put("moveMode", hsMoveMode);
//hs.insertPreferences("highScores", hsMap);
hs.insertPreferences(hScore, hsMap);
// print out the data
Map data = hs.getPreferencesData(hScore);
Gdx.app.log("data print", "the free mode value is " + (String[]) data.get("freeMode"));
Gdx.app.log("Array List", "the arraylist contains" + hsFreeMode.get(0)[0]);
每当我尝试从该类(在'数据打印'日志中)登录时,它总是表示空 但是,如果我直接从ArrayList(在'数组列表'日志中)记录它的值,则会出现值。
什么使它更奇怪的对我来说,如果我把它加入到这样的喜好之前更改地图值:
Map hsMap = new HashMap();
hsMap.put("freeMode", "luki");
hsMap.put("moveMode", "laras");
//hs.insertPreferences("highScores", hsMap);
hs.insertPreferences(hScore, hsMap);
和日志中的数据是这样的:
Gdx.app.log("data print", "the free mode value is " + data.get("freeMode"));
显示的数据... 所以我现在很困惑,不能弄清楚(但)那里是我的问题..
任何帮助将不胜感激:)
啊..那是我的错误..谢谢! – thekucays