Java - Guardar una ArrayList <ObjectType>: bloqueo de la aplicación

Necesito una manera de guardar un ArrayListobjeto. He examinado problemas similares en el sitio y (parece ;-) haber implementado lo que encontré, pero tengo dos problemas:

  1. Si defino la clase como Serializable y pongo el constructor, se bloquea en el lanzamiento
  2. De lo contrario, no guarda la matriz

¿Puedes ayudarme por favor? Estoy desarrollando un código para el proyecto de un voluntario y estoy atrapado ...

Muchas gracias por adelantado.

Mi aplicación tiene la siguiente clase definida: Globals(archivo Globals.java)


public class Globals extends Application implements Serializable {  

    private int position=-1;
    private ArrayList<RaccoltaPunti> raccoltePuntiList = new ArrayList<RaccoltaPunti>();
    public static final long serialVersionUID = 1L;
    /** constructor - seem required by Serializable, but creating it crashes app */
    public Globals(int position, ArrayList<RaccoltaPunti> raccoltePuntiList) {
        this.position = position;
        this.raccoltePuntiList = raccoltePuntiList;
    }
     // {getters and setters…}

    public void saveData(){

        String filename = getResources().getString(R.string.GLB_filename);
        String fileWithPath = this.getFilesDir().getPath().toString()+"/"+filename;
        Toast.makeText(this, "Salvataggio testo..."+ fileWithPath, Toast.LENGTH_LONG).show();
        try {
            FileOutputStream fos = new FileOutputStream(fileWithPath);
            ObjectOutputStream oos = new ObjectOutputStream(fos);
            oos.writeObject(this.raccoltePuntiList);    
            oos.close();
            Toast.makeText(Globals.this, "DatiSalvati ", Toast.LENGTH_SHORT).show();
        } catch (IOException e) {
            Log.e("FileSave", "CDM - IOException", e);
            Toast.makeText(this, "Errore saving file", Toast.LENGTH_LONG).show();
        }
    }
}

La clase a la que se hace referencia es: RaccoltaPunti.java

public class RaccoltaPunti {

    private String nomeRaccolta;
    private String nomePromoter;
    private String numeroTessera;
    private Long puntiPusseduti;
    private String dataScadenzaPunti;
    private String sitoWeb;
    private String sitoWebUsername;

        // constructor, getters and setters…….
}

Respuesta 1
  • Si desea guardar la lista RaccoltaPuntidebe ser Serializable.
Respuesta: 2

Tengo un JPanel padre que está utilizando el administrador de diseño OverlayLayout y el JPanel contiene un panel principal y sobre el panel de diseño. por ejemplo, setLayout (nuevo OverlayLayout (this)); add (overlayPanel) add (...

Ya he intentado exportar mis tablas de base de datos a CSV usando CSVWriter. Pero mis tablas contienen datos BLOB. ¿Cómo puedo incluirlos en mi exportación? Luego, más tarde, voy a importar ese CSV exportado ...

He estado tratando de hacer una matriz de matrices de enteros. Sé que la matriz externa tendrá una longitud N, mientras que cada matriz entera dentro solo necesita tener dos valores. Originalmente, hice un ...

Estoy usando JXTreeTable para hacer una estructura de tabla de árbol ahora quiero cambiar dinámicamente el color de una celda específica. ¿Cómo puedo cambiar el color de la celda? Encontré este código para cambiar el color, pero esto ...