android中this的用法
1. 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
所以可以指当前的上下文。
2. android中this.getContext()与getApplicationContext()的区别
1、this:代表当前,在Activity当中就是代表当前的Activity,换句话说就是Activity.this在Activity当中可以缩写为this;
2、getApplicationContext():生命周期是整个应用,应用摧毁,它才摧毁。
3、在平时的开发中,有时候可能会需要一些全局数据,来让应用中得所有Activity和View都能访问到,大家在遇到这种情况时,可能首先会想到自己定义一个类,然后创建很多静态成员,不过andorid已经提供了这种情况的解决方案:
在Android中,有一个名为Application的类,可以在Activity中使用getApplication(),方法来获得,它是代表我们的应用程序的类,使用它可以获得当前应用的主题,资源文件中的内容等,这个类更灵活的一个特性就是可以被继承,来添加自己的全局属性。
3. Android:类名.this.方法()是一种怎样的形式呢
OnChildClickListener 中的this是指的new的OnChildClickListener 对象,想调用MainActivity实例的内容要指明是用的哪个实例的this。
this是在new之后的实例对象的引用别名。
4. 关于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概念的,这个概念非常重要,慢慢体纳知键会吧。
5. 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环境
6. android 中 new button(this) ,new button(getApplicationContext)的主要区别和用法
我的想法是这样的:this.getApplicationContext()取的是这个应用程序的Context,Activity.this取的是这个Activity的Context,这两者的生命周期是不同的,前者的生命周期是整个应用,后者的生命周期只是它所在的Activity。
7. Android中this.*与*.this还有*.class的区别是什么
这些是java的基础知识.
首先this代表本类的一个引用,
this.*表示调用本类的某个方法,这个时候通常可以省略this;但在内部类中不能省略,否则编译器会认为是内部类的引用,所以要在this前加上类名
*.this表示本类的引用,通常前面的*是用本类的名字表示,当然也可以省略,但是如果是在内部类中一定要加上类名;
*.class表示其他的类;
在android中通常用的最多的地方是intent.setClass(A.this,
B.class);
8. 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);
}
}
//……
}