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);
}
}
//……
}