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!)