Android this与Activity.this的区别

写语句的时候有两种情况:

Toast.makeText(AlarmActivity.this,"闹钟取消", Toast.LENGTH_SHORT); <pre name="code" class="java">Toast.makeText(this,"闹钟5秒后启动", Toast.LENGTH_SHORT);

用英文在google搜what‘s difference between this and Activity.this,终于有了结果(其实自己后面用了Java里ClassName.this和this 之前搜的是Activity.this,所以没有结果,这点自己要灵活的提高自己的搜索能力了)。

在StackOverFlow找到了答案:

http://stackoverflow.com/questions/10102151/whats-the-difference-between-this-and-activity-this

Intent intent = new Intent(this, SecondActivity.class); eclipse error: The method setClass(Context, Class) in the type Intent is not applicable for the arguments (FirstActivity.ClickEvent, Class) Intent intent = new Intent(FirstActivity.this, SecondActivity)

this refers to your current object. In your case you must have implemented the intent in an inner class ClickEvent, and thats what it points to.
Activity.this points to the instance of the Activity you are currently in.

this是你当前对象的引用,在你的例子中你肯定在内部类ClickEvent里面实现intent,他指向的是ClickEvent,而不是你要传入的Activity。

Activity.this指向你所填写的Activity名字的一个实例,也是引用。

其实这是java的基础,我自己忘了。

this作为当前对象,直接用在Activity里面是没问题的,当this在匿名内部类中使用,当前的对象就变成new的内部类,而你传入的东西如果是整个Activity的话,就要Activity.this了。

Button b.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { Toast.makeText(AlarmActivity.this,"闹钟5秒后启动", Toast.LENGTH_SHORT); }};

所以在这里面需要指定是哪个activity的,Toast的那条语句移到外面,删掉AlarmActivity也行。

所以还是网友建议,全部用成Activity.this,清晰。

以上就是 Android this与Activity.this的区别的资料整理,后续继续补充相关资料谢谢大家对本站的支持!

时间: 2024-10-25 11:09:50

Android this与Activity.this的区别的相关文章

Android this与Activity.this的区别_Android

写语句的时候有两种情况: Toast.makeText(AlarmActivity.this,"闹钟取消", Toast.LENGTH_SHORT); <pre name="code" class="java">Toast.makeText(this,"闹钟5秒后启动", Toast.LENGTH_SHORT);            用英文在google搜what's difference between thi

android中一个Activity的空指针异常和classcast异常有什么区别呢

问题描述 android中一个Activity的空指针异常和classcast异常有什么区别呢 android中一个Activity的空指针异常和classcast异常有什么区别呢 解决方案 classcast叫做类型转换异常,比如 人继承动物,猴子继承动物,现在 (人)猴子://此句为classcast. 空指针是对象是null,比如 String str=null: str.toString()://此句为空指针. 解决方案二: 那得看哪里出空指针啊

Android编程中activity的完整生命周期实例详解_Android

本文实例分析了Android编程中activity的完整生命周期.分享给大家供大家参考,具体如下: android中 activity有自己的生命周期,对这些知识的学习可以帮助我们在今后写程序的时候,更好的理解其中遇到的一些错误.这篇文章很长,希望不要耽误大家的时间- 今天不会涉及太多关于activity栈的东西,主要说activity自身的生命周期 区分几个概念 1 Activity 官方解释为 "An Activity is an application component that pro

Android四种Activity的加载模式(转)

建议首先阅读下面两篇文章,这样才可以更好的理解Activity的加载模式: Android的进程,线程模型: http://www.cnblogs.com/ghj1976/archive/2011/04/28/2031586.html 其中对"Android的单线程模型"的描述,明白Activity的一些注意事项. Android Application Task Activities的关系  http://www.cnblogs.com/ghj1976/archive/2011/04

对象-Android service与Activity的新手问题

问题描述 Android service与Activity的新手问题 一个音乐播放器,要在service里面进行音乐播放,有MediaPlayer,Handler,List, Runnable几个对象,想从Activity里面传进去,用什么办法可以啊??实现Parcelable接口行吗? 解决方案 Android service向activity发送信息 解决方案二: 传这么多消息干嘛,感觉传个音乐路径以及状态值就可以了 解决方案三: bindService(),对于activity与servi

Android开发之activity的生命周期详解_Android

本文实例讲述了Android activity的生命周期.分享给大家供大家参考,具体如下: activity类处于android.app包中,继承体系如下: 1.Java.lang.Object 2.android.content.Context 3.android.app.ApplicationContext 4.android.app.Activity activity是单独的,用于处理用户操作.几乎所有的activity都要和用户打交道,所以activity类创建了一个窗口,开发人员可以通

Android四种Activity的加载模式

建议首先阅读下面两篇文章,这样才可以更好的理解Activity的加载模式: Android的进程,线程模型: http://www.cnblogs.com/ghj1976/archive/2011/04/28/2031586.html 其中对"Android的单线程模型"的描述,明白Activity的一些注意事项. Android Application Task Activities的关系 http://www.cnblogs.com/ghj1976/archive/2011/04/

Android编程中activity的完整生命周期实例详解

本文实例分析了Android编程中activity的完整生命周期.分享给大家供大家参考,具体如下: android中 activity有自己的生命周期,对这些知识的学习可以帮助我们在今后写程序的时候,更好的理解其中遇到的一些错误.这篇文章很长,希望不要耽误大家的时间- 今天不会涉及太多关于activity栈的东西,主要说activity自身的生命周期 区分几个概念 1 Activity 官方解释为 "An Activity is an application component that pro

Android开发之activity的生命周期详解

本文实例讲述了Android activity的生命周期.分享给大家供大家参考,具体如下: activity类处于android.app包中,继承体系如下: 1.Java.lang.Object 2.android.content.Context 3.android.app.ApplicationContext 4.android.app.Activity activity是单独的,用于处理用户操作.几乎所有的activity都要和用户打交道,所以activity类创建了一个窗口,开发人员可以通