繁体   English   中英

这两段代码有什么区别?

[英]What's the difference between these two pieces of code?

这是两个意图,它们启动另一个名为StartActivity的活动。 它们都在不同的上下文中运行,但是不可替换。

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

Intent intent = new Intent(this, StartActivity.class);
startActivity(intent);

当此代码出现在MainActivity的内部类中时,您将看到第一种语法,例如,为setOnClickListener()调用创建的View.OnClickListener的匿名内部类实现。 它说:“在this ,我们要的是实例MainActivity中,而不是实例View.OnClickListener执行”。

只有存在多个包装类时,才需要使用MainActivity.this。

例如

public class MainActivity extends AppCompatActivity {

  Runnable runnable = new Runnable() {
    @Override
    public void run() {
      // this refers to the Runnable
      // MainActivity.this refers to the activity
    }
  };

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM