2012-08-02 44 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

相關問題