получить кнопку, которая запустила событие - PullRequest
0 голосов
/ 14 ноября 2011

в школе каждую неделю мы делаем калькулятор каждую неделю на другой платформе (wp7, javascript, iphone, android), сегодня это android, поэтому у меня есть метод, который получает все нажатия клавиш и в зависимости от значения ключ мой класс сделать что-то, чтобы получить значение кнопки в C # является параметром отправителя, в JavaScript это, в Android ??

private OnClickListener leclicke= new OnClickListener() {

    public void onClick(View v) {
    //get the id of the button that fired the click event
    //findViewById(R.id.???);
    } };

спасибо.

Ответы [ 3 ]

2 голосов
/ 14 ноября 2011
private OnClickListener leclicke= new OnClickListener() {

    public void onClick(View v) {
    //get the id of the button that fired the click event
     int id = v.getId();
    } };

, тогда вы должны проверить, имеет ли это представление идентификатор или не использует это

if(id == View.NO_ID){
//this view does not have an id 
}
else{
//the view has an id 
}
1 голос
/ 14 ноября 2011

Вызовите метод getId()

v.getId();
0 голосов
/ 14 ноября 2011

Если вы хотите использовать один и тот же OnClickListener для всех кнопок, то вы можете сделать что-то вроде этого:

Button b1 = (Button)findViewById(R.id.button1);
Button b1 = (Button)findViewById(R.id.button2);

private OnClickListener leclicke= new OnClickListener() {

    public void onClick(View v) {

       if(v.equals(b1)) {
         // handle button 1
       } else if(v.equals(b2)) {
         // handle button 2
       } // etc.
    } };

Но это немного неуклюже. Еще одна вещь, которую вы можете сделать, это указать отдельный метод нажатия для каждого метода, установив свойство нажатия для кнопки в UI Designer, а затем объявив этот метод в вашем Activity, например. public onClickButton1(View v);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...