Toast.makeText()
方法的其中一個參數是上下文。Android中的敬酒
而對於該參數,我可以看到在某些Android教科書中給出的值爲ActivityName.this
。
不應該是this.xxx
?
Toast.makeText()
方法的其中一個參數是上下文。Android中的敬酒
而對於該參數,我可以看到在某些Android教科書中給出的值爲ActivityName.this
。
不應該是this.xxx
?
並不總是,這取決於你在哪裏創建吐司。例如,如果您在Button
點擊偵聽器的onClick
方法中創建了Toast,則this
將是Button,它不能提供上下文。
你不能在click監聽器中使用'this'只有它是匿名類..有幾種實現監聽器的方法..一種方法是聲明'android: onClick =「click」屬性爲按鈕XML並聲明方法'click(View v){//執行任務}'..在這種情況下,偵聽器不是匿名類 –
這只是一個可能的例子來解釋爲什麼你不能總是將此用作上下文。我不打算做這個講座。 – fasteque
放輕鬆.u剛剛提到的點擊監聽器,因此我指出了它。 –
不是。如果您在ActivityName
的內部類中,請致電ActivityName.this
。如果你不在內部班級,你只需撥打this
。 關鍵是要參考Activity
並將其用作上下文。
ActivityName.this
如果代碼位於嵌套類中,則獲取對具有該名稱的封閉類的對象的引用。例如,如果你寫的代碼你Activity
的代碼中:
public void onCreate(Bundle bundle) {
// ...
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() { // An anonymous nested class
@Override
public void onClick(View v) {
Toast.makeText(this, "Example", Toast.LENGTH_SHORT);
// This one causes an error; this is not a Context
Toast.makeText(YourActivity.this, "Example", Toast.LENGTH_SHORT);
// This one works
}
});
}
第一this
現指型OnClickListener
的對象。這不是Context
,所以這是一個錯誤。第二個是指當地YourActivity
,這是一個Activity
,所以一個Context
,所以它的工作原理。
你是如何比較'ActivityName.this'和'this.xxx'? 'this.xxx'將始終引用類的成員本身。 –
你在說'this'或'this.xxx' –