android中this
⑴ android中的context和this的区别
在android中常常会遇到与context有关的内容,特写下这篇blog,浅论一下context : 在语句 AlertDialog.Builder builder = new AlertDialog.Builder(this); 中,要求传递的 参数就是一个context,在这里我们传入的是this,那么这个this究竟指的是什么东东呢? 这里的this指的是Activity.this,是这个语句所在的Activity的this,是这个Activity 的上下文。网上有很多朋友在这里传入this.getApplicationContext(),这是不对的。 AlertDialog对象是依赖于一个View的,而View是和一个Activity对应的。 于是,这里涉及到一个生命周期的问题,this.getApplicationContext()取的是这个应 用程序的Context,Activity.this取的是这个Activity的Context,这两者的生命周期是不同 的,前者的生命周期是整个应用,后者的生命周期只是它所在的Activity。而AlertDialog应 该是属于一个Activity的,在Activity销毁的时候它也就销毁了,不会再存在;但是,如果传 入this.getApplicationContext(),就表示它的生命周期是整个应用程序,这显然超过了它 的生命周期了。 所以,在这里我们只能使用Activity的this
context指的上下文环境
this指的是本类的对象,
一般情况:有context但是不一定有this,有this一定有context环境
⑵ 关于android开发(java开发)中this的问题
通俗讲,this指本类,如:
public class Main extends Activity {
。。。
GridView gridview =(GridView) findViewById(R.id.gridview);
gridview.setAdapter(newImageAdapter(this));
。。。
}
代洞巧码第二行的this指Main.this
Android很多控件运行猛信是有条件的,就是所谓的运行环境,就是Context(上下文),Context就是一系列环境变量,控件的运行是基于这些变量的。
我也是花很多时间才真正体会到this,Context概念的,这个概念非常重要,慢慢体纳知键会吧。
⑶ android中这里的this啥意思
当前的这个activity
⑷ Android this问题
从Intenti=newIntent(this,Sang_h2.class)的原意看,应该指向上下文Context(如Activity,Service,Application等)。但这里是否使用正确要看方法onClick所在的类。
假如
{
//……
classmyListenerimplementsView.onClickListener{
publicvoidonClick(Viewv){
//这时this指向myListener,那么正确的用法是
Intenti=newIntent(MyActivity.this,Sang_h2.class);
startActivity(i);
}
}
//……
}
⑸ android中this.getContext()与getApplicationContext()的区别
1、this:代表当前,在Activity当中就是代表当前的Activity,换句话说就是Activity.this在Activity当中可以缩写为this;
2、getApplicationContext():生命周期是整个应用,应用摧毁,它才摧毁。
3、在平时的开发中,有时候可能会需要一些全局数据,来让应用中得所有Activity和View都能访问到,大家在遇到这种情况时,可能首先会想到自己定义一个类,然后创建很多静态成员,不过andorid已经提供了这种情况的解决方案:
在Android中,有一个名为Application的类,可以在Activity中使用getApplication(),方法来获得,它是代表我们的应用程序的类,使用它可以获得当前应用的主题,资源文件中的内容等,这个类更灵活的一个特性就是可以被继承,来添加自己的全局属性。
⑹ Android this会不会为空
不会,this是代表这个activity类,只要activity实例化了,就不会为空的。如果包装在方法类,需要类名点this调用才不会报错。
⑺ 关于android开发(java开发)中this的问题
通俗讲,this指本类,如:
public
class
Main
extends
Activity
{
。。。
GridView
gridview
=(GridView)
findViewById(R.id.gridview);
gridview.setAdapter(newImageAdapter(this));
。。。
}
代码第二行的this指Main.this
Android很多控件运行是有条件的,就是所谓的运行环境,就是Context(上下文),Context就是一系列环境变量,控件的运行是基于这些变量的。
我也是花很多时间才真正体会到this,Context概念的,这个概念非常重要,慢慢体会吧。
⑻ android中 this 指向的是 当前的Context 执行上下文
this指代的是当前类的调用,比如说
my(int
b,int
b){
this.a
=
a;
this.b
=b;
}
this.a和this.b是当前类的变量a和b,在android中如果是在Activity中调用的话,由于Context
是Activity的父类,所以Activity本身就是一个Context
所以可以指当前的上下文。
⑼ Android中this.*与*.this还有*.class的区别是什么
这些是java的基础知识.
首先this代表本类的一个引用,
this.*表示调用本类的某个方法,这个时候通常可以省略this;但在内部类中不能省略,否则编译器会认为是内部类的引用,所以要在this前加上类名
*.this表示本类的引用,通常前面的*是用本类的名字表示,当然也可以省略,但是如果是在内部类中一定要加上类名;
*.class表示其他的类;
在android中通常用的最多的地方是intent.setClass(A.this,
B.class);
⑽ Android中怎么用this
Android 中的this主要有三种用法:
1、表示对当前对象的引用!
2、表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是进行区分!其实这是第一种用法的特例,比较常用,所以那出来强调一下。
3、用于在构造方法中引用满足指定参数类型的构造器(其实也就是构造方法)。但是这里必须非常注意:只能引用一个构造方法且必须位于开始!
还有就是注意:this不能用在static方法中!所以甚至有人给static方法的定义就是:没有this的方法!虽然夸张,但是却充分说明this不能在static方法中使用。
给个详细解释的链接:
http://android.tgbus.com/Android/tutorial/201107/358217.shtml
(由于这是Android开发相关的基础,所以我就不写我理解的“this”,毕竟你还在学Android基础,待以后你对Android学习更近一步时,你就会有自己的理解了。所以呢,为了给提问者你正确标准的答案,这里就用链接的知识解答你了,望见谅!TKS!)