EnableListAdapter中的上下文

时间:2011-04-29 14:02:45

标签: android this android-context

我创建了一个ExpandableListAdapter类,我需要从访问它的活动发送它的上下文。

MyActivity.class:

MenuExpandableListAdapter.useInstanceContext(getApplicationContext());

MyExpandableListAdapter.class:

static Context context;
public static void useInstanceContext(Context applicationContext) {
    context = applicationContext;
}

以上代码有效,但这也有效:

MenuExpandableListAdapter.useInstanceContext(this.getApplicationContext());

有什么区别?这是传递上下文的好方法吗?我仍然在努力完全理解背景。

3 个答案:

答案 0 :(得分:2)

上下文是必要的,以便访问资源和其他一些东西。所以,两者 - 应用程序和活动上下文都有效。但是对于最小的东西来说,一个好的做法是紧密的,这是有效的,这是你的情况下的活动。所以,我会建议你的新方式:

MenuExpandableListAdapter.useInstanceContext(this);

此外,在您的示例中,调用之间没有区别。 this只是对当前对象的引用。

答案 1 :(得分:1)

this指的是当前正在执行代码的对象,如果该方法在同一个类中声明,并且不是静态的,则调用它是相同的:

getApplicationContext()

this.getApplicationContext()

(同样适用于班级成员)

答案 2 :(得分:0)

MenuExpandableListAdapter.useInstanceContext(getApplicationContext());

通过隐式使用调用/当前对象来调用getApplicationContext()方法。

第二,你明确地给出了调用/当前对象,因为这是一个总是引用调用对象的特殊对象。

我建议你使用这个

MenuExpandableListAdapter.useInstanceContext(this.getApplicationContext());

因为根据我的阅读,这是一种很好的做法。