Android this与Activity.this的区别
写语句的时候有两种情况:
Toast.makeText(AlarmActivity.this,"闹钟取消",Toast.LENGTH_SHORT); <prename="code"class="java">Toast.makeText(this,"闹钟5秒后启动",Toast.LENGTH_SHORT);
用英文在google搜what‘sdifferencebetweenthisandActivity.this,终于有了结果(其实自己后面用了Java里ClassName.this和this之前搜的是Activity.this,所以没有结果,这点自己要灵活的提高自己的搜索能力了)。
在StackOverFlow找到了答案:
http://stackoverflow.com/questions/10102151/whats-the-difference-between-this-and-activity-this
Intentintent=newIntent(this,SecondActivity.class); eclipseerror:ThemethodsetClass(Context,Class)inthetypeIntentisnotapplicableforthearguments(FirstActivity.ClickEvent,Class) Intentintent=newIntent(FirstActivity.this,SecondActivity)
thisreferstoyourcurrentobject.InyourcaseyoumusthaveimplementedtheintentinaninnerclassClickEvent,andthatswhatitpointsto.
Activity.thispointstotheinstanceoftheActivityyouarecurrentlyin.
this是你当前对象的引用,在你的例子中你肯定在内部类ClickEvent里面实现intent,他指向的是ClickEvent,而不是你要传入的Activity。
Activity.this指向你所填写的Activity名字的一个实例,也是引用。
其实这是java的基础,我自己忘了。
this作为当前对象,直接用在Activity里面是没问题的,当this在匿名内部类中使用,当前的对象就变成new的内部类,而你传入的东西如果是整个Activity的话,就要Activity.this了。
Buttonb.setNegativeButton(R.string.cancel,newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intwhich){ Toast.makeText(AlarmActivity.this,"闹钟5秒后启动",Toast.LENGTH_SHORT); }};
所以在这里面需要指定是哪个activity的,Toast的那条语句移到外面,删掉AlarmActivity也行。
所以还是网友建议,全部用成Activity.this,清晰。
以上就是Androidthis与Activity.this的区别的资料整理,后续继续补充相关资料谢谢大家对本站的支持!