gpt4 book ai didi

java - 如何将 Vector 放入 intent.extra?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:54:53 26 4
gpt4 key购买 nike

我已经开始为 android 编写一个小应用程序。看起来很不错,但有一件事我不明白。

我在 Activity A 中创建了一个新 Intent 并添加了一个序列化 vector intent.putExtra("key", vector) .在被调用的 Activity B 上,我正在这样做:Vector<ItemModel> items = (Vector<ItemModel>) getIntent().getExtras().getSerializable("key") .此行导致 ClassCastException .有谁知道为什么?请帮助我:-)

这是两个 Activity 和 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;

}

购物 list Activity (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);

项目列表 Activity (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>();
}

最佳答案

任何实现 List 和 Serializable 的东西都在内部变成了 ArrayList。所以它可能作为 Vector 输入,但作为 ArrayList 输出。在 putter 和 getter 的两端将其视为一个 List<> 可能会更好。

一般来说,也不要使用 Vector。所有方法都是同步的,这使得它的效率低于 ArrayList。

关于java - 如何将 Vector 放入 intent.extra?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3530421/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com