【问题标题】:Get current activity in base activity intent获取基本活动意图中的当前活动
【发布时间】:2015-07-25 21:13:39
【问题描述】:

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

任何帮助将不胜感激。

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

提前致谢。

【问题讨论】:

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


    【解决方案1】:

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

    如果你的类扩展了任何类型的Activity,只需使用thisYourClassName.this,甚至getContext()getApplicationContext()getBaseContext(),一切都取决于你在哪里,但在你的情况下,@ 987654331@或YouClass.this就够了。

    在您的第一个示例中,MainActivity.this 表示 Context 对象。有关context 是什么的一些讨论,请参阅this

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-28
      • 1970-01-01
      • 2017-09-02
      • 1970-01-01
      • 1970-01-01
      • 2013-03-14
      • 2023-03-24
      相关资源
      最近更新 更多