2013-02-13 151 views
0

我指定一個按鈕偵聽到多個按鈕,像這樣:Android的 - 按鈕偵聽知道哪個按鈕被點擊

for(Button b : buttons) 
    { 
     b.setOnClickListener(clicklisten); 
    } 

按鈕監聽器被定義如下:

private OnClickListener clicklisten = new OnClickListener() 
{ 
    public void onClick(View v) 
    { 
     Context context = getApplicationContext(); 
     text = Toast.makeText(context, " Button Clicked", Toast.LENGTH_SHORT); 
     text.show(); 
    } 
}; 

因爲它是,它只是顯示一個吐司與「按鈕點擊」顯示。我希望它能夠檢測哪個按鈕被點擊,可能是通過該按鈕的名稱或ID(如XML中定義的),並根據它顯示。這樣可以通過代碼檢索信息嗎?

回答

0

獲取資源ID View#getId()

View.OnClickListener myOnlyhandler = new View.OnClickListener() { 
    public void onClick(View v) { 
     if(button1.getId() == ((Button)v).getId()){ 
      // it was the button1 
     } 
     else if(button2.getId() == ((Button)v).getId()){ 
      // it was the button2 
     } 
    } 
} 
0

或者你可以這樣寫...... 那獲取的onClick方法通過視圖V是...這得到了點擊的按鈕..所以你可以檢查,如果這種觀點等於你的任何按鈕...

View.OnClickListener myOnlyhandler = new View.OnClickListener() { 
    public void onClick(View v) { 
     if(button1.equals(v)){ 
      // it was the button1 
     } 
     else if(button2.equals(v)){ 
      // it was the button2 
     } 
    } 
}