簡體   English   中英

setOnClickListener Android

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM