Java 保存多个数据
我有一个疑问,我不知道如何解决它,若我有一个ArrayList,只有3个位置的值为[1,2,3]。我希望当用户添加例如文本[1]时,数据以本地模式保存在设备中。如果以后用户想要添加另一个文本,例如[3] 最后,SharedReference将保存[1,3]。因此,如果用户退出应用程序并重新进入,他只能兑换文本[2]。因为我已经赎回了[1,3] 我有以下内容,但我不知道如何正确地继续 促销代码。Java 保存多个数据,java,android,arraylist,save,sharedpreferences,Java,Android,Arraylist,Save,Sharedpreferences,我有一个疑问,我不知道如何解决它,若我有一个ArrayList,只有3个位置的值为[1,2,3]。我希望当用户添加例如文本[1]时,数据以本地模式保存在设备中。如果以后用户想要添加另一个文本,例如[3] 最后,SharedReference将保存[1,3]。因此,如果用户退出应用程序并重新进入,他只能兑换文本[2]。因为我已经赎回了[1,3] 我有以下内容,但我不知道如何正确地继续 促销代码。 private ArrayList<String> codigoInvitacionAmi
private ArrayList<String> codigoInvitacionAmigos;
codigoInvitacionAmigos.add("1");
codigoInvitacionAmigos.add("2");
codigoInvitacionAmigos.add("3");
将共享首选项中使用的代码保存为逗号分隔的字符串(例如“1,3”) 功能的使用:
String enteredCode = edtCode.getText().toString()
if (isCodeValid(enteredCode)) {
if (isCodeUsed(enteredCode)) System.out.println("Code already used");
else {
System.out.println("Code valid and not yet used");
setCodeUsed(enteredCode);
}
} else System.out.println("Code not valid");
private void Cargar_CodigoReclamadoYCanjeado(){
SharedPreferences load_CodigosReclamados = getSharedPreferences("CODIGO_CLAIM", MODE_PRIVATE);
String codi = load_CodigosReclamados.getString("codes_0", "");
if(!codi.isEmpty())codigoInvitacionAmigos.remove(codi);
Log.d("TODOS_Cargar", codi);
String codi_1 = load_CodigosReclamados.getString("codes_1", "");
if(!codi_1.isEmpty())codigoInvitacionAmigos.remove(codi_1);
Log.d("TODOS_Cargar", codi_1);
}
private void Guardar_CodigoReclamadoYCanjeado(int posicion, String codigoCanjeado){
SharedPreferences saved_CodigosReclamados = getSharedPreferences("CODIGO_CLAIM", MODE_PRIVATE);
SharedPreferences.Editor editor = saved_CodigosReclamados.edit();
switch (posicion){
case 1:
editor.putString("codes_1", codigoCanjeado);
break;
default:
editor.putString("codes_0", codigoCanjeado);
break;
}
editor.apply();
Log.d("TODOS_Saved", "Entra Saved");
}
String[] codes = {"1", "2", "3"};
boolean isCodeValid(String code) {
for (String s : codes)
if (s.equals(code)) return true;
return false;
}
boolean isCodeUsed(String code) {
String usedCodes = sharedPreferences.getString("used_codes", "");
String[] usedCodesArray = usedCodes.split(",");
for (String s : usedCodesArray)
if (s.equals(code)) return true;
return false;
}
void setCodeUsed(String code) {
String usedCodes = sharedPreferences.getString("used_codes", "");
usedCodes += code + ",";
editor.putString("used_codes", usedCodes).apply();
}
String enteredCode = edtCode.getText().toString()
if (isCodeValid(enteredCode)) {
if (isCodeUsed(enteredCode)) System.out.println("Code already used");
else {
System.out.println("Code valid and not yet used");
setCodeUsed(enteredCode);
}
} else System.out.println("Code not valid");