Java 如何从单独活动中的一个活动修改ArrayList
如何从单独的Java 如何从单独活动中的一个活动修改ArrayList,java,android,Java,Android,如何从单独的活动向我的阵列列表添加更多汽车 因为我有这样的东西: private List<Car> getData() { List<Car> cars = new ArrayList<Car>(); cars.add(new Car("Dodge", "Viper")); cars.add(new Car("Chevrolet", "Corvette")); cars.add(new Car("Aston Martin", "Vanquish"
活动
向我的阵列列表
添加更多汽车
因为我有这样的东西:
private List<Car> getData() {
List<Car> cars = new ArrayList<Car>();
cars.add(new Car("Dodge", "Viper"));
cars.add(new Car("Chevrolet", "Corvette"));
cars.add(new Car("Aston Martin", "Vanquish"));
cars.add(new Car("Lamborghini", "Diablo"));
cars.add(new Car("Ford", "Pinto"));
return cars;
}
private List getData(){
List cars=new ArrayList();
添加(新车(“道奇”、“毒蛇”);
添加(新车(“雪佛兰”、“克尔维特”);
添加(新车(“阿斯顿马丁”,“征服”);
添加(新车(“兰博基尼”、“暗黑破坏神”);
添加(新车(“福特”、“平托”);
返回车辆;
}
但cars只是一个例子,我在一个应用程序中使用了textswitcher,我想从textswitcher中获取文本,并将其作为listview的其他活动中的新项放置。只需将列表设为类变量,并使用addCar函数即可
public void addCar(String make,String model){
cars.add(new Car(make,model));
}
并更改getData()
private List getData(){
addCar(“道奇”、“毒蛇”);
addCar(“雪佛兰”、“克尔维特”);
等
返回车辆;
}
在您的其他活动中,只需调用addCar(make,model)将
cars
放入intent,第二个活动开始时使用putExtra()
。然后用getExtra()
检索它,并添加您想要的汽车。不能保证在您离开后,另一个活动将存在于内存中(因为如果内存资源变少,系统可能会销毁它)。您应该将数据保存到永久性存储(即数据库或共享参考
),或者将数据作为意图
额外传递。基本上,您需要将对象传递给另一个活动
,以便使用意图
进行修改然而,这似乎非常错误。我建议您重新考虑如何在活动
之外将汽车
添加到阵列列表
正如Harmeet Singh所提到的,您可能希望创建一个sqlite
表来容纳所有汽车。然后您可以让您的列表视图
有一个查看该表的光标或适配器
。这将允许您从任何地方添加汽车
,并且将更加灵活和更好地练习
这里有两篇文章讨论了如何将对象作为意图
传递给其他活动
,但我不建议您继续沿着这条路实现您的要求。使用sqlite
和数据库表
我建议您使用数据库如sqllite
或共享公共资源如xml
文件或任何永久存储,这不是存储的方式,因为这种类型的存储是易失的
如果内存在任何情况下被清除,所有数据都将被清除
看看你到底想编辑什么?我想添加新数据,例如:cars。添加(…)是的,你可以使用io流。修复了他的问题,现在应该更容易了。@user1560197我想你应该使用像sqllite
这样的数据库进行永久存储,这不是方法。在第二个活动中
他需要第一个活动的引用,不是吗?是的,应该不会有问题。虽然我不知道他的类/代码是什么样子。他没有说明任何约束条件,但汽车只是一个例子,我在一个应用程序中使用了textswitcher,我想从textswitcher中获取文本,并将其作为新项目放入listview的其他活动中。您确实应该查看sqlite
,并为您的数据创建一个表。请看我的答案以了解更多细节。试图做到你所说的是不好的做法,改变和实施会是一件非常头疼的事情。
private List<Car> getData() {
addCar("Dodge", "Viper");
addCar("Chevrolet", "Corvette");
etc...
return cars;
}