2013-02-13 5 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(); 
    } 
}; 

Как это , он просто показывает тост с отображением «Button Clicked». Я хотел бы, чтобы он обнаружил, какая кнопка нажата, возможно, через имя или идентификатор этой кнопки (как определено в XML) и отобразить что-то на этом основании. Возможно ли получить эту информацию через код таким образом?

ответ

0

Получить идентификатор ресурса 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

Или вы могли бы написать, как это ... мнение v, который получает передается в метод OnClick является ... кнопка, которая получила щелкнул .. так что вы можете проверить, если эта точка зрения равна любой из ваших ...

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 
     } 
    } 
}