當前位置:首頁 » 安卓系統 » androidthis參數

androidthis參數

發布時間: 2023-03-04 10:07:05

⑴ 關於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中的context函數是起什麼作用的為什麼在每次遇到contex()函數的時候都可以用this這個指針代替,

Context不是函數而是一個類——如果不太了解面向對象,可以把「類」看做一種數據類型,就像int,不過類型為「類」的數據(稱為對象)可能儲存遠比int多的信息,比如這里的類型為Context的對象就儲存關於程序、窗口的一些資源。

有些函數調用時需要一個Context參數,比如Toast.makeText,因為函數需要知道是在哪個界面中顯示的Toast。
再比如,Button myButton = new Button(this); 這里也需要Context參數(this),表示這個按鈕是在「this」這個屏幕中顯示的。
Android開發使用(純粹的)面向對象語言,一切都是對象,就連我們寫的函數都是對象的函數。
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toast.makeText(this,
"OK!",
Toast.LENGTH_LONG).show();
Button button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v)
{
Toast.makeText(MainActivity.this,
"Hello, world!",
Toast.LENGTH_LONG).show();
}
});
}
}
這里OnCreate就是MainActivity的對象的函數(MainActivity是類),所以這個函數中的this就表示當前的、包含這個函數的MainActivity對象。
MainActivity extends Activity,意思是MainActivity 繼承 Activity,即MainActivity 是 Activity 的一種,所有的MainActivity 都是 Activity。同樣,在Android文檔中Activity繼承ContextThemeWrapper,ContextThemeWrapper繼承ContextWrapper,ContextWrapper繼承Context。所以this這個MainActivity也是Context,把this傳入Toast.makeText表示「OK!」是在當前的MainActivity對象(也是Context)中顯示的。
對於顯示"Hello, world!"的Toast.makeText,這個函數在onClick中,而onClick是new Button.OnClickListener(){...}這個沒有名字的類的函數,this表示匿名類的對象,不表示MainActivity對象,所以這里用MainActivity.this,強制選擇外面一層MainActivity的this。
PS:定向求助?我不記得我以前回答過Android方面的問題……難道是系統自動發的?

⑶ Android this會不會為空

不會,this是代表這個activity類,只要activity實例化了,就不會為空的。如果包裝在方法類,需要類名點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中怎麼用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!)

熱點內容
自己伺服器搭建梯子 發布:2025-05-10 03:31:39 瀏覽:571
華為升級包怎麼解壓 發布:2025-05-10 03:18:24 瀏覽:603
c語言以什麼結束 發布:2025-05-10 03:18:22 瀏覽:257
160android 發布:2025-05-10 03:03:30 瀏覽:178
pythonstorage 發布:2025-05-10 02:58:38 瀏覽:499
如何查看電腦配置顯卡參數 發布:2025-05-10 02:37:00 瀏覽:106
證券交易密碼在哪裡修改 發布:2025-05-10 02:31:56 瀏覽:839
javafor是什麼意思 發布:2025-05-10 02:23:09 瀏覽:842
學生雲伺服器可以搭建網站嗎 發布:2025-05-10 02:10:36 瀏覽:441
共享的文件怎麼訪問許可權 發布:2025-05-10 02:02:49 瀏覽:166