您好我将BigInteger []数组存储到Preference中,这样工作正常,但在检索时我获得了相同的值20次,有人可以告诉我代码有什么问题:
final String DELIMITER = "BOND";
final int DELIMITER_LENGTH = 4;
String str = null ;
//BigInteger [] integer = new BigInteger[50];
for(int l = 0; l < arrayTimes.length ; l++){
if(str == null){
str = arrayTimes[i].toString() + DELIMITER;
}else{
str += arrayTimes[i].toString() + DELIMITER;
}
}
savePreference("your_key", str);
Log.d("Prefs", "Array Time Saved");
String strone = loadPreference("your_key");
ArrayList<BigInteger> myBigInt = new ArrayList<BigInteger>();
while(strone != null){
int subStringLastIndex = 0;
if(strone.contains(DELIMITER) && strone.length() != DELIMITER_LENGTH){
subStringLastIndex = strone.indexOf(DELIMITER.charAt(0));
myBigInt.add(new BigInteger(strone.substring(0, subStringLastIndex)));
strone = strone.substring(subStringLastIndex + 4);
}else{
strone = null;
}
}
for(int m = 0; m < myBigInt.size(); m++){
Log.d("Prefs", myBigInt.get(m).toString()); //Here i am printing values
}
答案 0 :(得分:1)
你似乎有一个错字。你的for循环使用l,但你用i引用数组。如果arrayTimes有20个项目,您将在字符串中添加相同的值20次。