2016-11-29 25 views
0

所以在一個Activity中,我在一個類中設置了一個ArrayList,在另一個Activity中我想獲取ArrayList,但是當我嘗試獲取這些信息時,應用程序崩潰了。當我試圖從其他活動中獲取價值時,應用程序崩潰了,爲什麼?

錯誤:

FATAL EXCEPTION: main Process: com.example.sander.onzeoptocht, PID: 3749 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.sander.onzeoptocht/com.example.sander....t.deelnemer}: java.lang.ClassCastException: android.support.multidex.MultiDexApplication cannot be cast to com.example.sander....mDataObject.deelnemerInfo

設置活動:

ArrayList<alleDeelnemers> deelnemers = new ArrayList<>(); 

//deelnemer is a class with ID and some strings. 
deelnemers.add(deelnemer); 

//set arraylist in class 
deelnemerInfo info = new deelnemerInfo(); 
info.setDeelnemerGegevens(deelnemers); 

類:

public class deelnemerInfo extends Application { 

ArrayList<alleDeelnemers> deelnemerGegevens; 

public ArrayList<alleDeelnemers> getDeelnemerGegevens() { 
    return deelnemerGegevens; 
} 
public void setDeelnemerGegevens(ArrayList<alleDeelnemers> deelnemerGegevens) { 
    this.deelnemerGegevens = deelnemerGegevens; 
} 

獲取活動:

deelnemerInfo info = ((deelnemerInfo)getApplicationContext()); 

Log.e("test", String.valueOf(info.getDeelnemerGegevens().get(0).getAantalvolgnummer())); 

回答

0

難道getApplicationContext()會返回整個應用程序的上下文,而不僅僅是您的活動嗎?嘗試使用GetContext()。此外,你ArrayList的類型是alleDeelnemers,這對我來說看起來很奇怪。

groetjes,

+0

安永Rob,zal ik de class van'alleDeelnemers'erbij zetten?丹簡單地說,她是一個錯誤的女孩。 Ik zal nu是'GetContext()'proberen。 –

+0

Maar'GetContext()'wordt rood bij mij。 IK weet ook niet precies hoe ik dat moet gebruiken。 –

+0

我建議作爲一個友好的建議,嘗試使用英語編碼:)並在這裏說英語:)見面vriendelijke groeten – estoke

0

首先,你不能(至少我不知道任何方式)剛剛獲得來自另一個活動的變量,當你在你設定的活動定義它的範圍僅僅是那個活動。當你想將一個值傳遞給另一個活動時,你可以通過不同的線程鏈接它們,例如, AsyncTask或者您將它們作爲附加項傳遞。

其次,我不太明白你想如何通過設置你的delmeneerInfo getApplicationContext()。這不會返回您在前一個活動中設置的任何變量,而是返回應用程序上下文的內容。其中,你的錯誤消息說,都不能轉換到類:android.support.multidex.MultiDexApplication cannot be cast to com.example.sander....mDataObject.deelnemerInfo

你也可以嘗試用自己的分機應用類來創建服用點全局變量,如工作,看看這裏:https://www.mobomo.com/2011/05/how-to-use-application-object-of-android/

+0

我已經知道了,對不起。我只是想做很多事情,而且我已經知道AsyncTask,但是我不能使用這種方法。 –

+0

我不知道如何在一個Extras中添加我的數組 –

+0

不知道你的數組中有什麼,你可能會凝聚成一個Serializable Extra或一大堆String Extras。你也可以考慮擴展你的應用程序類,我更新了我的答案。 –

相關問題