如何从单独的Cars
向我的ArrayList<Car>
添加更多Activity
?
因为我有这样的事情:
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;
}
但汽车只是一个例子,我在一个应用程序中有文本切换器,我想从textswitcher获取文本,并将其作为新项目放在其他活动中与listview。
答案 0 :(得分:0)
只需将List设为类变量并具有addCar函数
即可public void addCar(String make,String model){
cars.add(new Car(make,model));
}
并更改getData()
private List<Car> getData() {
addCar("Dodge", "Viper");
addCar("Chevrolet", "Corvette");
etc...
return cars;
}
并在您的其他Activity中调用addCar(make,model)
答案 1 :(得分:0)
将cars
置于意图中,使用Activity
开始第二个putExtra()
。然后使用getExtra()
检索它并添加所需的汽车。
答案 2 :(得分:0)
一旦你离开它,就不能保证其他Activity
将存在于内存中(因为如果内存资源变低,系统可能会破坏它)。您应该将数据保存到永久存储(即数据库或SharedPreferences
),或者将数据作为Intent
额外传递。
答案 3 :(得分:0)
基本上,您需要使用Activity
将对象传递给其他Intents
进行修改。 HOWEVER ,这似乎非常错误。我建议您重新考虑如何将Cars
添加到ArrayList
之外的Activity
。
正如Harmeet Singh所提到的,您可能想要创建一个sqlite
表来保存所有Cars
。然后,您可以让ListView
有CursorAdapter
查看该表。这样您就可以从任何地方添加Cars
,并且可以更灵活,更好地练习。
这里有两篇文章讨论将对象作为Intents
传递给您的另一个Activity
但是,我不建议您继续沿着这条路去实现您的要求。使用sqlite
和数据库表。
答案 4 :(得分:0)
我建议您使用数据库,例如sqllite
或共享公共资源,例如xml
文件或永久存储,这不是存储的方式,因为此类存储易失性。
如果内存在任何情况下都清除,那么您的所有数据都将清理。