android - 获取基本 Activity Intent 中的当前 Activity

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

我有一个 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 。基本上我不知道如何获取那里的上下文。

任何帮助将不胜感激。

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

提前致谢。

最佳答案

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

如果您的类扩展了任何类型的Activity,只需使用thisYourClassName.this,甚至getContext()getApplicationContext()getBaseContext(),一切都取决于您所在的位置,但就您而言,thisYouClass .this 就足够了。

在第一个示例中,MainActivity.this 表示一个 Context 对象。请参阅this关于什么是上下文的一些讨论。

关于android - 获取基本 Activity Intent 中的当前 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31631186/

相关文章:

android - 如何仅指定一次 LinearLayout 元素之间的间距?

android - 在第二个 ImageView 添加到 RelativeLayout 后,第一个 ImageView 消失

java - 无法从android studio清除项目

java - 如何加快 Java VM (JVM) 的启动时间?

mysql - 检查MySQL中是否存在数千条记录

javascript - 使用许多 Javascript 函数

java - 如何在 Java 代码中加载 Android 布局文件,而不是将其静态放置在主 xml 布局文件中?

android - 将我的应用程序连接到 wamp 服务器

android - 刷新对话框内容

android - 在 Android Studio 中更改资源路径