public class NewPlanet extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add);
ImageView marsImage = (ImageView) findViewById(R.id.imageMars);
marsImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
WorldGen mars = new WorldGen("Mars", 642, 3.7);
mars.setPlanetColonies(1);
Toast.makeText(NewPlanet.this, "Mars Created", Toast.LENGTH_SHORT).show();
}
});
}
}
NewPlanet.this
参考什么上下文?为什么makeText
从课堂上Toast
需要这种背景?我了解this
在引用类和使用点表示法访问字段时的关键字用法,就像在中一样this.field
,但是this
关键字何时在类引用之后出现呢?
该实例NewPlanet.this
表示的对象NewPlanet
是一个外部类。如果仅使用this
它,它将代表匿名类的实例OnClickListener
。
编译后,您将获得如下内容:
marsImage.setOnClickListener$1(new OnClickListener$1(this));
static class OnClickListener$1 implements OnClickListener {
private final NewPlanet ref;
OnClickListener$1(NewPlanet ref) {
this.ref= ref;
}
@Override
public void onClick(View v) {
WorldGen mars = new WorldGen("Mars", 642, 3.7);
mars.setPlanetColonies(1);
Toast.makeText(ref, "Mars Created", Toast.LENGTH_SHORT).show();
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句