获取基本活动意图中的当前活动

时间:2015-07-25 21:13:40

标签: android performance android-layout android-intent android-activity

我有一个BaseActivity类,我在其他活动中扩展。我在底部有一个菜单,包含5个按钮。目前,每当单击菜单按钮时我都在使用setOnClickListener,并且我在每个活动中都复制了代码。显然这不是一个好习惯。如果我必须进行任何小改动,我必须编辑每个变得麻烦的活动。所以我试图通过在BaseActivity中放置不同的方法并在xml onClick中调用该方法来优化它。

以下代码说我目前在MainActivity.this上,它将打开FindActivity.class。如果代码在MainActivity类

中,则以下内容有效
Public Class MainActivity extends BaseActivity{

        Intent intent = new Intent(MainActivity.this, FindActivity.class);
        startActivity(intent);
}

但我想要实现的是在BaseActivity中使用上面的代码,这显然会被MainActivity扩展。

Public Class BaseActivity extends ActionBarActivity{

        Intent intent = new Intent("This should be MainActivity.class", FindActivity.class);
        startActivity(intent);
}

现在问题是我不确定当我在MainActivity上时如何在BaseActivity中的Intent参数中获取MainActivity.this。基本上我不知道如何获得上下文。

非常感谢任何帮助。

如果上述内容不清楚并需要更多解释,请告诉我。

提前致谢。

1 个答案:

答案 0 :(得分:5)

每个ActivityService都有自己的上下文,因此仅使用this关键字就足以检索您要使用的上下文。

如果您的课程延伸任何类型的Activity,请使用thisYourClassName.this,甚至getContext()getApplicationContext()getBaseContext(),一切都取决于你的位置,但在你的情况下,thisYouClass.this就足够了。

在第一个示例中,MainActivity.this表示Context个对象。有关context的内容的讨论,请参阅this