J'ai commencé à écrire une petite application pour Android. Ça a l'air très bien, mais il y a une chose que je ne comprends pas.Comment mettre un vecteur dans un intention.extra?
J'ai créé une nouvelle intention dans l'activité A et j'ai ajouté un vecteur sérialisé intent.putExtra("key", vector)
. Sur l'activité appelée B, je fais ceci: Vector<ItemModel> items = (Vector<ItemModel>) getIntent().getExtras().getSerializable("key")
. Cette ligne provoque un ClassCastException
. Quelqu'un sait-il pourquoi? S'il vous plaît aidez-moi :-)
est ici la source des deux activités et du ItemModel
:
ItemModel:
public class ItemModel implements java.io.Serializable {
private static final long serialVersionUID = -1772392719565658730L;
public int id;
public String name;
public String quantity;
public int status;
}
ShoppingListActivity (A):
public void onClickItems(final View v){
final Intent intent = new Intent(this,ItemListActivity.class);
Vector<ItemModel> v1 = new Vector<ItemModel>();
ItemModel item = new ItemModel();
item.name = "Tomaten";
item.quantity = "400g";
item.id = 12;
item.status = 0;
v1.add(item);
item = new ItemModel();
item.name = "Bohnen";
item.quantity = "150g";
item.id = 13;
item.status = 0;
v1.add(item);
item = new ItemModel();
item.name = "Schokolade";
item.quantity = "5 Tafeln";
item.id = 17;
item.status = 0;
v1.add(item);
intent.putExtra("ShoppingList", v1);
startActivity(intent);
ItemListActivity (B):
public class ItemListActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.item);
ListView list = (ListView) findViewById(R.id.ITEMSLIST);
final Bundle extras = getIntent().getExtras();
Vector<ItemModel> items = (Vector<ItemModel>) extras.getSerializable("ShoppingList");
ArrayList<HashMap<String, Object>> itemsList = new ArrayList<HashMap<String, Object>>();
HashMap<String, Object> itemMap = new HashMap<String, Object>();
}
il n'a pas fonctionné pour moi comme j'utilise la liste trop mauvaises toutes les suggestions .. initialement j'ai fait la demande de service Web sur la deuxième activité –
shareef