在android中,如果我有一個名爲MyActivityA.java和MyActivityB.java的活動類,並且它們都有一個名爲restart()
的方法,如何將MyActivityA.this和MyActivityB.this對象存儲在列表中?該名單將與什麼樣的目標聲明?如何將類對象存儲在Android的列表中?
另外,我將如何循環訪問該列表中的那些元素並針對每個項目調用restart()
方法?
謝謝。
在android中,如果我有一個名爲MyActivityA.java和MyActivityB.java的活動類,並且它們都有一個名爲restart()
的方法,如何將MyActivityA.this和MyActivityB.this對象存儲在列表中?該名單將與什麼樣的目標聲明?如何將類對象存儲在Android的列表中?
另外,我將如何循環訪問該列表中的那些元素並針對每個項目調用restart()
方法?
謝謝。
首先用於奪取restart()
創建一個接口:
public interface Restarable { void restart(); }
讓MyActivityA
和MyActivityB
實現Restartable
接口。
public class MyActivityA extends Activity implements Restartable { @Override public void restart() { // ... } // ... }
然後你就可以創建一個Restartable
列表,添加MyActivityA.this
和MyActivityB.this
和循環通過列表來調用restart()
。
只需創建對象的列表,像這樣:
List<Object> objList = new ArrayList<Object>();
,然後添加你的類的對象是這樣的:
objList.add(obj);
在Android中,如果我有一個活動類稱爲MyActivityA.java和 MyActivityB.java,並且它們都有一個名爲restart()的方法, 如何將MyActivityA.this和MyActivityB.this對象存儲在列表中?
只需製作一個類似「可重新啓動」的界面並定義方法restart()
。
讓你的兩個類都實現這個接口。現在您可以製作一個List<Restartable> list
來存儲您的所有對象。 重新啓動它們都使用的for-each循環的調用方法.restart()
for(Restarteble obj: list){
obj.restart();
}
在你試圖走下這條道路之前,爲什麼?嘗試在活動外部存儲對活動的引用是一個非常糟糕的主意。你想達到什麼目的?你爲什麼要重新啓動?閱讀這個和你以前的問題,我徹底建議你學習Activity的生命週期。 – Simon