Как передать аргумент функции onClick кнопки? (Android) - PullRequest
0 голосов
/ 27 октября 2018

Описание:

У меня есть функция onClick под названием sum(View v). Как я могу передать аргументы упомянутой функции? Я попытался sum(View v,int a,int b), но как только я это сделал, компилятор выдает ошибку как "Corresponding method handler 'public void sum(android.view.View)' not found". Во-первых, скажите мне, можно ли передать аргумент в функцию «Нажми» так же, как я, или есть другой способ сделать то же самое.

желаемый код Java:

     public void sum(view v,int a,int b){
        int c;
        c =a+b;
}

нашел несколько связанных вопросов на форуме, но не был удовлетворен ответами. Попросите меня предоставить больше, если это необходимо. Спасибо.

Ответы [ 2 ]

0 голосов
/ 27 октября 2018

Если вы жестко закодировали в xml атрибут onClick кнопки (скажем, это кнопка), например:

android:onClick="sum"

, тогда метод суммы должен иметь эту подпись:

public void sum(View v)

другие параметры не разрешены только для sum() View v (даже если приложение будет скомпилировано, но при нажатии кнопки произойдет сбой приложения).Если вы хотите использовать эти 2 целочисленные переменные внутри sum(), вы должны объявить их на уровне класса. Редактировать Итак, объявив 2 переменные в вашем классе активности

int a = 0;
int b = 0;

, вы можете установить их значения в любом месте этого класса, и когда вы нажмете кнопку, внутри sum() вы сможете получить к ним доступ.

0 голосов
/ 27 октября 2018

Как передать аргументы упомянутой функции?

Как правило, нет. Вы можете использовать лямбда-выражения привязки данных в макете, но это довольно сложная тема.

Вместо этого вы можете:

  • Переименуйте ваш sum(View v) метод в onSumClicked(View v) и отрегулируйте, где вы используете этот метод, для соответствия
  • Пусть onSumClicked(View v) вызовет sum(view v,int a,int b) с нужными значениями
...