Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 保存多个数据_Java_Android_Arraylist_Save_Sharedpreferences - Fatal编程技术网

Java 保存多个数据

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

我有一个疑问,我不知道如何解决它,若我有一个ArrayList,只有3个位置的值为[1,2,3]。我希望当用户添加例如文本[1]时,数据以本地模式保存在设备中。如果以后用户想要添加另一个文本,例如[3]

最后,SharedReference将保存[1,3]。因此,如果用户退出应用程序并重新进入,他只能兑换文本[2]。因为我已经赎回了[1,3]

我有以下内容,但我不知道如何正确地继续

促销代码。

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");