如何从单独的Activity中的一个Activity修改ArrayList

时间:2012-08-02 17:12:52

标签: java android

如何从单独的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。

5 个答案:

答案 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。然后,您可以让ListViewCursorAdapter查看该表。这样您就可以从任何地方添加Cars,并且可以更灵活,更好地练习。

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

  1. How to pass object from one activity to another in Android
  2. How do I pass data between activities in Android?

答案 4 :(得分:0)

我建议您使用数据库,例如sqllite或共享公共资源,例如xml文件或永久存储,这不是存储的方式,因为此类存储易失性

如果内存在任何情况下都清除,那么您的所有数据都将清理

看看android persistent storage