【问题标题】:Starting Intent correctly. Difference between this vs MainActivity.this正确启动 Intent。 this 与 MainActivity.this 的区别
【发布时间】:2017-01-28 03:18:09
【问题描述】:

从一些 MainActivity(例如)开始新意图有什么区别:

Intent intent = new Intent(this, SecondActivity.class);

Intent intent = new Intent(MainActivity.this, SecondActivity.class);

【问题讨论】:

  • this 被称为您的活动的当前上下文。但是,当您实现按钮单击侦听器时,您将转到 this 范围不可用的匿名类,因此您使用 this 关键字编写该活动名称.
  • 似乎 OP 需要更多地了解上下文是什么! (这个)已知会让许多开发人员感到困惑!
  • 几乎相同,但上下文从您尝试使用它的位置开始很重要,首先,您尝试访问当前类对象但您不能使用匿名类的对象来做什么您正在尝试这样做,现在您可以探索更多

标签: android android-intent


【解决方案1】:

意图的工作没有区别,但是我们在不同的情况下使用这两个语句。

实际上,我们使用 Intent 来启动新活动:

Intent intent = new Intent(Context packageContext, Class<?> cls);

在 packageContext 上,我们必须传递上下文。所以这就是我们将“this”作为当前活动的上下文传递的原因。

但是,如果我们对某个匿名类(如匿名 onClickListener)执行相同操作,则 this 指的是该匿名类的实例。所以在这种情况下,我们使用“MainActivity.this”,它是 MainActivity 类的上下文。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    • 2014-08-07
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    相关资源
    最近更新 更多