0

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;

}

但是汽车只是示例,我在一个应用程序中有文本切换器,我想从文本切换器获取文本并将其作为新项目放置在具有列表视图的其他活动中。

4

5 回答 5

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;

    }

在您的其他活动中只需调用 addCar(make,model)

于 2012-08-02T17:21:16.067 回答
0

投入cars意图,它从第二个Activity开始putExtra()。然后检索它getExtra()并添加您想要的汽车。

于 2012-08-02T17:21:33.433 回答
0

不能保证Activity一旦你离开另一个它就会存在于内存中(因为如果内存资源变低,系统可能会破坏它)。您应该将数据保存到持久性存储(即数据库或SharedPreferences)或将数据作为Intent额外数据传递。

于 2012-08-02T17:23:11.967 回答
0

基本上,您需要将对象传递给另一个对象以Activity使用Intents. 然而,这似乎很不对劲。我建议重新考虑如何CarsArrayList.Activity

正如 Harmeet Singh 所提到的,您可能想要考虑创建一个sqlite表格来容纳所有Cars. 然后你可以让你ListView有一个CursorAdapter正在看那张桌子的人。这将允许您Cars从任何地方添加,并且将更加灵活和更好的实践。

这里有两篇文章再次讨论将对象传递Intents给你的另一个Activity但是,我不建议你继续沿着这条路去实现你所要求的。sqlite和一个数据库表一起去。

  1. 如何在Android中将对象从一个活动传递到另一个活动
  2. 如何在 Android 中的活动之间传递数据?
于 2012-08-02T17:25:16.070 回答
0

我建议您应该使用类似数据库sqllite或共享一个公共资源(如xml文件或任何永久存储),这不是制作存储的方式,因为这种类型的存储是volatile

如果内存在任何情况下都被清除,您的所有数据都会被清除。

看看android持久化存储

于 2012-08-02T17:33:07.583 回答