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

Dee*_*eep 2 performance android android-intent android-layout 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);
}
Run Code Online (Sandbox Code Playgroud)

但是我想要达到的目的是在BaseActivity中拥有以上代码,而该代码显然将由MainActivity进行扩展。

Public Class BaseActivity extends ActionBarActivity{

        Intent intent = new Intent("This should be MainActivity.class", FindActivity.class);
        startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)

现在,这里的问题是我不确定在使用MainActivity时如何在BaseActivity的Intent参数中获取MainActivity.this。基本上我不确定如何获得上下文。

任何帮助将不胜感激。

如果以上不清楚,请告诉我,需要更多说明。

提前致谢。

Mur*_*ira 5

ActivityService有自己的背景,所以只能使用this关键字是足以让你找回你要使用的上下文。

如果你的类扩展任何形式的Activity,只是使用thisYourClassName.this,甚至getContext()getApplicationContext()或者getBaseContext(),一切都取决于你在哪里,但你的情况,this或者YouClass.this是不够的。

在第一个示例中,MainActivity.this代表一个Context对象。请参阅内容以了解什么context是什么。