2012-08-02 25 views
0

如何从单独的Activity向我的ArrayList<Car>添加更多Cars如何在单独的活动中从一个活动修改ArrayList

因为我有这样的事情:

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在一个应用程序,我想从textswitcher获取文本并把它作为与ListView的其他活动新项目。

+1

你想要编辑什么? – mario 2012-08-02 17:14:30

+0

我想添加新的数据,例如:cars.add(...) – user1560197 2012-08-02 17:15:02

+0

是的,你可以使用io流.. – 2012-08-02 17:15:58

回答

0

只是让你列表中的一个类变量,并有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(品牌,型号)

+1

在第二个“活动”中,他需要参考第一个来做这件事,不是吗? – alex 2012-08-02 17:23:20

+0

是的,不应该是一个问题,但。虽然我不知道他的班级/代码是什么样子。他没有说明任何约束 – mario 2012-08-02 17:24:58

+0

但汽车只是一个例子,我在一个应用程序中使用了textswitcher,并且我想从textswitcher获取文本并将其作为新项目放入其他具有listview的Activity中。 – user1560197 2012-08-02 17:37:06

0

cars设为意图,其从putExtra()开始第Activity。然后用getExtra()检索它并添加你想要的汽车。

0

一旦你离开它,不能保证其他Activity将存在于内存中(因为如果内存资源变低,系统可能会销毁它)。您应该将数据保存到永久存储器(即数据库或SharedPreferences),或者将其作为Intent多余的数据传递。

0

基本上你需要通过Intents将对象传递给另一个Activity进行修改。 但是,这似乎很错误。我建议重新考虑如何将Cars添加到Activity之外的ArrayList。正如Harmeet Singh所提到的,您可能想要考虑创建一个可容纳所有Cars的表sqlite。然后你可以让你的ListView有一个CursorAdapter看着那张桌子。这将允许您从任何地方添加Cars,并且会更加灵活和更好的练习。

这里有两篇文章讨论将Intents作为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?
0

我建议你应该使用数据库sqllite或共享公共资源xml文件或任何用于永久存储,这是不是做存储的方式,因为这种类型的存储是易变的

如果内存在任何情况下都清除,所有的数据都会去掉clean

看一看android persistent storage

相关问题