我有一个 BaseActivity 类,我在其他 Activity 中扩展了它。我在底部有一个菜单,其中包含 5 个按钮。目前,每当单击菜单按钮时,我都会使用 setOnClickListener,并且我已在每个 Activity 中复制了代码。显然这不是一个好的做法。如果我必须做任何小的改变,我就必须在每一个 Activity 中进行编辑,这会变得很麻烦。因此,我尝试通过在 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 。基本上我不知道如何获取那里的上下文。
任何帮助将不胜感激。
如果上述内容不清楚并需要更多解释,请告诉我。
提前致谢。
最佳答案
每个Activity
或Service
都有自己的上下文,因此仅使用this
关键字就足以检索您想要使用的上下文.
如果您的类扩展了任何类型的Activity
,只需使用this
或YourClassName.this
,甚至getContext()
、getApplicationContext()
或 getBaseContext()
,一切都取决于您所在的位置,但就您而言,this
或 YouClass .this
就足够了。
在第一个示例中,MainActivity.this
表示一个 Context
对象。请参阅this关于什么是上下文
的一些讨论。
关于android - 获取基本 Activity Intent 中的当前 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31631186/