добавление onClickListener из отдельного класса в XML-макет - PullRequest
1 голос
/ 11 января 2012

У меня есть отдельный файл со слушателем. Я хочу прикрепить этот слушатель к кнопке, используя xml Android: onClick, но после компиляции я получаю ошибку

01-11 14:35:35.560: E/AndroidRuntime(4682): java.lang.IllegalStateException: Could not find a method Btnlistener(View) in the activity class com.android.app.Activity for onClick handler on view class android.widget.Button with id 'btn1'

Есть ли какой-нибудь причудливый способ импортировать мой класс слушателя, чтобы я мог использовать Android: onClick в xml.

Ответы [ 2 ]

4 голосов
/ 11 января 2012

Вот что я предлагаю:

Имейте BaseActivity с кодом для вашего слушателя, обычным способом

public void buttonClicked(View view) {
   // put here what your listener did
}

И сделай все, что нужно этому слушателю extends BaseActivity. Вы можете определить в своих макетах следующий элемент xml для кнопок:

android:onClick="buttonClicked"
0 голосов
/ 11 января 2012

когда вы устанавливаете onClick в xml, тогда класс активности, который раздувает xml, должен объявить событие onClick как метод, например:

в XML:

onClick="btnAdd"

и в вашей активности:

public void btnAdd(View v){
//your code when the button click event is captured
}
...