2014-09-30 47 views
0

我有兩類包含用戶輸入和指定的一堆數據。當對象`B`改變時更新對象`A` - Android編程

A類有幾個參數,其中的一個參數是它被分配一個B類的實例。

現在,這兩個類AB的價值觀能夠在Android的任何時候通過點擊ListView內的對象的引用進行編輯,通過內置dialog自定義與可編輯的形式出現。

現在,當我構建A類,一個對話框彈出,並要求我填寫一張name string,一個int color並從創建並存儲在一個ArrayListSpinnerB指定類的一個實例。

我的問題在於,如果我點擊類B並更改它的一個參數;例如它是string namestring phoneNum;我需要能夠更新類A的任何實例,這些實例使用類B的已編輯實例與已更改的新類。

我想我是一個很好的方法是檢查,看看是否類B正在使用的任何A類的什麼困惑......

+1

對不起,但你的問題有點複雜,難以理解。嘗試使用一些簡單的代碼來改進它,只需提供顯示您正在嘗試解決的問題的最低限度所需的代碼即可。 – 2014-09-30 16:58:51

+1

看起來像觀察員模式的工作。 – fabian 2014-09-30 17:03:27

+0

@準確地對待我的想法。否則,爲了簡單起見,只需迭代所有'A'對象,並在每次更改'B'時讓它們檢查相關的'B'對象的狀態。無效但簡單。 – cYrixmorten 2014-09-30 17:05:04

回答

1

最簡單的方法可能是添加一個唯一的標識符B類以便您可以檢查A類的哪些對象具有您關心的B的對象。例如:

public class B { 

    private int id; 

    private int getId() { 
    return id; 
    } 
} 

您應該在其構造函數中設置「id」的值,使B的每個實例都具有唯一的ID。然後在您的A列表中,您可以這樣做:

for (A a : listOfAs) { 
    if (a.getB().getId() == theId) { 
    // Do something to "a" 
    } 
} 

其中「theId」是您正在修改的B的ID。

+0

感謝這就是我需要的! :) – Nevily 2014-09-30 17:21:34

相關問題