2012-07-04 70 views
1

我正在開發Android應用程序並在應用程序類MyAppData中維護全局變量。現在,爲了使用這些全局變量,我在我的活動創建MyAppData對象如下:Android:如何在BaseAdapter類中創建應用程序類對象

MyAppData mad; 
mad = (MyAppData)getApplication(); 

由於我的活動有一個自定義列表視圖中,我使用BaseAdapter填充LstView。現在我需要在我的BaseAdapter類中使用全局變量。下面的代碼犯規讓我創造MyAppData類的一個對象:

public class AlbumList_Adapter extends BaseAdapter{ 
Context context; 
MyAppData mad; 

     public AlbumList_Adapter(Context context){ 
     this.context = context 
     mad = (MyAppData)getApplication(); 
     } 
} 

即使我曾試圖mad = (MyAppData)context;但沒有運氣。我不知道我在哪裏弄錯了。

+0

http://stackoverflow.com/questions/3826905/singletons-vs-application-context-in-android/3827166#3827166 –

+0

有什麼樣的全局變量?這可能是一個糟糕的設計。 – Egor

+0

此外,隨着你的代碼你不*創建*對象,你越來越對象。 – pawelzieba

回答

9

您可以:

class MyApplication extends Application { 

private static MyApplication mInstance; 

@Override 
public void onCreate() { 
    super.onCreate(); 
    mInstance = this; 
} 

public static MyApplication getInstance() { return mInstance; } 

} 

然後你可以使用MyApplication.getInstance()整個代碼。

+0

非常感謝,對於遲到的回覆感到抱歉。它現在完美運行 –

+0

+1這幫了我! –

相關問題