Есть довольно много вопросов по этому вопросу, но не смог найти ни одного с конкретной проблемой у меня ...
В своем файле layout.xml я использую тег android:onClick
для кнопки, чтобы вызвать правильное значение onClickListener
. Я получаю ошибку:
java.lang.IllegalStateException: Could not find a method handle_cancel(View) in the activity class com.matthieu.HelloWorldApplication for onClick handler on view class android.widget.Button with id 'button_cancel'
У меня есть этот метод, реализованный в Activity, но он ищет его в классе, который расширяет Application
... Я не понимаю, почему. Вид и все, что настроено только в Упражнении.
Если кому-то нужно, вот объявление этого метода (в моей деятельности, НЕ в HelloWorldApplication):
public void handle_cancel(View v) {
// do something useful here
}
Редактировать (из запроса adamp) ... и, вероятно, ответить на мой собственный вопрос:
Вот часть кода, где используется этот макет ...
public class AddVocabularyActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.top); // that layout contains an empty LinearLayout id/main_content
}
private some_other_function() {
LinearLayout main_content = (LinearLayout) findViewById(R.id.main_content);
main_content.removeAllViews();
View.inflate(getApplicationContext(), R.layout.hello, main_content); // layout.hello is the one containing the button
}
// some other stuff
}
Во время копирования / вставки этого кода, я предполагаю, что проблема в том, что я использовал getApplicationContext
, чтобы накачать View этим Button
...