在一个类的内部使用this表示当前对象的引用,然而有时类的方法内部还有类的定义需要使用外部类的方法时就需要使用this对象,此时this只是内部使用类的对象,在内部类方法定义的类中如何引用外部类此时就要用到类名.this方法。类名.this表示外部类的实例。这样说有点抽象,看下面的例子:
public classMainActivity extends Activity {
int count=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取屏幕中的按钮控件对象
Button button=(Button)findViewById(R.id.Button01);
//为按钮添加OnClickListener接口实现
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//获取线性布局对象
LinearLayout ll=(LinearLayout)findViewById(R.id.lla);
String msg=MainActivity.this.getResources().getString(R.string.button);
//创建一个Button对象
Button tempbutton=new Button(MainActivity.this);
//设置Button控件显示的内容
tempbutton.setText(msg+(++count));
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
MainActivity是一个外部类,View.OnClickListener是一个内部类,在内部类中使用外部类方法需要使用外部类名.this引用外部类的实例。