2012-07-04 42 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这帮了我! –

相关问题