[英]setOnClickListener Android
Button b1 = (Button) findViewById(R.id.button1);
OnClickListener list1 = new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, Second.class));
}
};
b1.setOnClickListener(list1);
為什么我們不需要實例化或初始化傳遞給onClick的View v? 它指的是什么對象?
如果按下按鈕, View v
實際上是Button b1
如果按下按鈕, View v
將返回對象Button b1
android將每個元素即文本字段,按鈕等視為視圖。 這里View v將返回你點擊的按鈕的對象,即按鈕b1。
b1.setOnClickListener(list1);
- 你的這段代碼將list1
監聽器綁定到你的按鈕b1
的onClick事件。
只要點擊 - 在這種情況下 - 觸摸 ,在按鈕b1上,將調用onClick()
方法,該方法發送已觸發它的視圖的handle(v)
(在您的情況下 - 按鈕b1 )。
因此, View v
將成為觸發OnClickListener
的視圖的OnClickListener
。
測試以下..
protected void onCreate(Bundle savedInstanceState)
{
Button b1 = (Button) findViewById(R.id.button1);
b1.setOnClickListerner(this);
.....
.....
}
public void onClick(View v)
{
if(v == b1)
{
// do stuff
}
}
上面的代碼和你的代碼都是一樣的。 按下按鈕時,按鈕對象的引用將傳遞給onClick()。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.