Android中类名.this和this的区别(容易混淆)
2015-06-02 22:08
330 查看
在一个类的内部使用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引用外部类的实例。
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引用外部类的实例。
相关文章推荐
- 在Android中查看和管理sqlite数据库
- [Android Studio 权威教程]Windows下安装Android Studio
- Android播放视频
- Android保存图像到相册
- Android中Activity、Service和线程之间的通信
- 【android】初步学习日期选择器的使用
- android下基本json串的生成与解析
- Android广播BroadcastReceiver 二
- android中实现记住登录密码的界面
- Android广播BroadcastReceiver 一
- android 自定义RadioButton样式
- 图解Android View的scrollTo(),scrollBy(),getScrollX(), getScrollY()
- java4android(5)面向对象、类的定义、生成对象的方法、使用对象的方法、生成多个对象、构造函数super()、函数重载、static、继承
- Android手机分辨率基础知识(DPI,DIP计算)三
- Android Volley完全解析(四),带你从源码的角度理解Volley
- Android手机分辨率基础知识(DPI,DIP计算)二
- Android Volley完全解析(一),初识Volley的基本用法
- android 流量监测
- Android漂亮的对话框项目sweet-alert-dialog
- Android漂亮的对话框项目sweet-alert-dialog