Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Pase de ArrayList <? implementa Parcelable> a Actividad

He buscado algunos temas pero no he encontrado una solución a mi problema.

public class Series implements Parcelable { private String name; private int numOfSeason; private int numOfEpisode; /** Constructors and Getters/Setters have been removed to make reading easier **/ public Series(Parcel in) { String[] data = new String[3]; in.readStringArray(data); this.name = data[0]; this.numOfSeason = Integer.parseInt(data[1]); this.numOfEpisode = Integer.parseInt(data[2]); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeStringArray(new String[] { this.name, String.valueOf(this.numOfSeason), String.valueOf(this.numOfEpisode) }); } private void readFromParcel(Parcel in) { name = in.readString(); numOfSeason = in.readInt(); numOfEpisode = in.readInt(); } public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { @Override public Series createFromParcel(Parcel in) { return new Series(in); } @Override public Series[] newArray(int size) { return new Series[size]; } }; 

}

  • React-native: comando no encontrado
  • Duplicar archivos en la vista de proyecto de Android Studio
  • Android Nexus 7 DPI para Eclipse
  • ListView no actualiza elementos ya visibles
  • Com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: No se pudo instalar todo
  • Animación de diapositivas izquierda a derecha de Android
  • En mi MainActivity tengo un ArrayList. Para hacer la lista editable dinámicamente necesito pasarla a otra actividad donde puedo editarla.

     ArrayList<Series> listOfSeries = new ArrayList<Series>(); public void openAddActivity() { Intent intent = new Intent(this, AddActivity.class); intent.putParcelableArrayListExtra( "com.example.episodetracker.listofseries", (ArrayList<? extends Parcelable>) listOfSeries); startActivity(intent); } 

    Necesito emitir la lista, de lo contrario Eclipse me da el siguiente mensaje de error. El método putParcelableArrayListExtra (String, ArrayList) en el tipo Intent no es aplicable para los argumentos (String, List)

    ¿Es esta la forma correcta de hacerlo?

      ArrayList<Series> list = savedInstanceState .getParcelableArrayList("com.example.episodetracker.listofseries"); 

    Esta es la manera en que trato de leer los datos en otra actividad.

    Se está estrellando en la línea de arriba. la parte getParcelableArrayList.

  • Error: Error de ejecución para la tarea ': app: transformClassesWithDexForDebug' en android studio
  • Android: ¿La mejor biblioteca de análisis XML?
  • instalación automática de apk
  • Cómo detener Handler en Android?
  • Cree una biblioteca de Jar Android para su distribución
  • Finalizar la actividad actual de un fragmento
  • 4 Solutions collect form web for “Pase de ArrayList <? implementa Parcelable> a Actividad”

    El probelm está en la escritura hacia fuera a la parcela y leyendo adentro de la parcela …

     @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(name); dest.writeInt(numOfSeason); dest.writeInt(numOfEpisode); } private void readFromParcel(Parcel in) { name = in.readString(); numOfSeason = in.readInt(); numOfEpisode = in.readInt(); } 

    Lo que escribes tiene que coincidir con lo que lees en …

     @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Intent i = new Intent(this,SecondActivity.class); ArrayList<testparcel> testing = new ArrayList<testparcel>(); i.putParcelableArrayListExtra("extraextra", testing); startActivity(i); } public class SecondActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ArrayList<testparcel> testing = this.getIntent().getParcelableArrayListExtra("extraextra"); } } 

    El código de arriba ha creado a partir de dos activties el primero lanza el segundo y funciona bien pude sacar el parcelable sin problema.

    He utilizado putParcelableArrayList(<? extends Parcelable>) de un objeto Bundle . No directamente de un Objeto de Intención. (Realmente no sé cuál es la diferencia). pero utilizo para usar de esta manera:

     ArrayList<ParcelableRow> resultSet = new ArrayList<ParcelableRow>(); resultSet = loadData(); Bundle data = new Bundle(); data.putParcelableArrayList("search.resultSet", resultSet); yourIntent.putExtra("result.content", data); startActivity(yourIntent); 

    Más adelante en su nueva actividad, puede rellenar los datos insertados recientemente en el objeto Bundle de la siguiente manera:

     Bundle data = this.getIntent().getBundleExtra("result.content"); ArrayList<ParcelableRow> result = data.getParcelableArrayList("search.resultset"); 

    Sólo recuerda que tu ArrayList<> debe contener sólo objetos parcelables. y sólo para asegurarse de que su haber pasado los datos puede comprobar si los datos recibidos es nulo o no, sólo para evitar problemas.

    Debe utilizar el método putParcelableArrayListExtra() en la clase Intent .

    Tal vez esto ayuda a alguien .. de lo contrario mi problema es que he utilizado write y readValue, pero debe coincidir con el tipo como writeInt, readInt writeString, readString y así sucesivamente

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.