2013-07-30 67 views
0

在android中,如果我有一個名爲MyActivityA.java和MyActivityB.java的活動類,並且它們都有一個名爲restart()的方法,如何將MyActivityA.this和MyActivityB.this對象存儲在列表中?該名單將與什麼樣的目標聲明?如何將類對象存儲在Android的列表中?

另外,我將如何循環訪問該列表中的那些元素並針對每個項目調用restart()方法?

謝謝。

+2

在你試圖走下這條道路之前,爲什麼?嘗試在活動外部存儲對活動的引用是一個非常糟糕的主意。你想達到什麼目的?你爲什麼要重新啓動?閱讀這個和你以前的問題,我徹底建議你學習Activity的生命週期。 – Simon

回答

3

首先用於奪取restart()創建一個接口:

 

    public interface Restarable { 
     void restart(); 
    } 

MyActivityAMyActivityB實現Restartable接口。

 

    public class MyActivityA extends Activity implements Restartable { 
     @Override 
     public void restart() { 
      // ... 
     } 
     // ... 
    } 

然後你就可以創建一個Restartable列表,添加MyActivityA.thisMyActivityB.this和循環通過列表來調用restart()

3

只需創建對象的列表,像這樣:

List<Object> objList = new ArrayList<Object>(); 

,然後添加你的類的對象是這樣的:

objList.add(obj); 
+0

我在想,這可以用來存儲對象,但是當我通過它們循環時,我將如何在「Object」對象上調用restart方法。 Eclipse會抱怨,因爲'Object'對象沒有一個名爲'restart()'的方法,我不知道該怎麼投它。 – omega

+0

@omega您總是可以將對象轉換爲您的Activity類,然後調用重新啓動方法。你也可以通過使用instanceOf來檢查它是什麼類型(哪個活動)。 –

+0

你可以應該如何循環訪問數組,並調用每個重啓方法的代碼,林不知道你的意思。如果我使用實例,我不需要檢查每種類型的實例嗎? – omega

1

在Android中,如果我有一個活動類稱爲MyActivityA.java和 MyActivityB.java,並且它們都有一個名爲restart()的方法, 如何將MyActivityA.this和MyActivityB.this對象存儲在列表中?

只需製作一個類似「可重新啓動」的界面並定義方法restart()

讓你的兩個類都實現這個接口。現在您可以製作一個List<Restartable> list來存儲您的所有對象。 重新啓動它們都使用的for-each循環的調用方法.restart()

for(Restarteble obj: list){ 
    obj.restart(); 
} 
相關問題