Android: ¿Cómo pasar el objeto Parcelable a la intención y el uso getParcelable método de paquete?
¿Por qué bundle tiene getParcelableArrayList
, métodos getParcelable
; Pero Intent
sólo tiene putParcelableArrayListExtra
método? ¿Puedo transmitir sólo el object<T>
, no ArrayList
de un elemento? Entonces, ¿para qué es getParcelable
?
- Uso de Parcelable con referencias circulares
- La API de reproductor de YouTube para Android lanza "BadParcelableException ClaseNotFoundException al desmarcar: asc" con la nueva versión de YouTube
- Implementación parcelable con ArrayList <objeto personalizado>
- Cómo implementar Parcelable para una clase que contenga List <List <String>?
- BadParcelableException - Error de BroadcastReceiver intentado
- Clase abstracta como parcelable
- Pon el Objeto como intención para la siguiente actividad
- Odd Error "Clase no encontrada al desmarcar"
- Android parcelable referenciando otra dependencia circular parcelable
- Cómo definir parcelable de tipo de interfaz en el archivo .aidl?
- La transferencia de ByteArray a través de Parcel devuelve NullPointerException
- ¿Cómo almacenar permanentemente objeto personalizado parcelable?
- Escribir una subclase de Parcelable a otra parcela
Intent proporciona un montón de métodos putExtra () de sobrecarga.
Supongamos que usted tiene una clase Foo implementa Parcelable correctamente, para ponerlo en Intent en una Actividad:
Intent intent = new Intent(getBaseContext(), NextActivity.class); Foo foo = new Foo(); intent.putExtra("foo ", foo); startActivity(intent);
Para obtenerlo de la intención en otra actividad:
Foo foo = getIntent().getExtras().getParcelable("foo");
Espero que esto ayude.
Parcelable p[] =getIntent().getParcelableArrayExtra("parcel");
Primero crea Parcelable usando la técnica dada entonces
public static CreditCardDetail newInstance(CreditCardItemBO creditCardItem) { CreditCardDetail fragment = new CreditCardDetail(); Bundle args = new Bundle(); args.putParcelable(CREDIT_KEY,creditCardItem); fragment.setArguments(args); return fragment; }
Y conseguirlo como
if(getArguments() != null) { creditCardItem = getArguments().getParcelable(CREDIT_KEY); }
dónde
public static final String CREDIT_KEY = "creditKey";
Es importante recordar que sus modelos deben implementar la interfaz Parcelable y el método CREATOR estático. Este caso es para las listas
private static final String MODEL_LIST = "MODEL_LIST"; public MainFragment() {} public static MainFragment newInstance(ArrayList<YourModel> models) { MainFragment fragment = new MainFragment(); Bundle args = new Bundle(); args.putParcelableArrayList(MODEL_LIST,models); fragment.setArguments(args); return fragment; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { ArrayList<YourModel> models = getArguments().getParcelableArrayList(MODEL_LIST); } }
- Cómo colocar el botón en el interior del texto de edición
- ¿Cómo detecta cuándo ha finalizado un archivo de sonido?