我有兩個名爲Activity_A
和Activity_B
的活動。我喜歡在Activity_A方法或函數:從其他活動調用函數時發生ClassCastException
public void printNumber (int i) {
for(int j = 0; j <= i; j++) {
Log.w("TAG", "Print number is: " + j);
}
}
現在我想從我的叫Activity_B另一個活動調用此方法。
我嘗試使用以下行來調用這個方法:
((Activity_A) this.getApplicationContext()).printNumber();
我寫Activity_B的的onCreate這條線,這將崩潰我的應用程序和logcat中顯示了這個錯誤:
java.lang.ClassCastException: android.app.Application cannot be cast to com.example.app.Activity_A
如何我可以這樣做嗎?
編輯:我發現this問題acording到 「富」 延伸到Activity_A
Activity_B
。但問題是Activity_B
是一個列表活動,我已經將其擴展爲ListActivity
。
等答案創建Activity_A
的實例,然後調用方法。如果我這樣做,所有變量將變爲空或爲空Activity_A
。我不想做一個靜態方法。
有沒有其他的方式來做到這一點,而無需創建一個靜態引用或另一個實例?
你正在嘗試做的,是可能是錯誤的。你或者想要其他的工具類來調用這個方法,或者更好的架構。 – 2012-08-06 09:42:04