Вы не можете избежать реализации этого слушателя во всех ваших действиях в любом случае.Но вы можете сделать это немного более организованно:
Вы можете написать собственный макет заголовка для вашего приложения (/res/layout/header.xml
), в котором у вас есть кнопка «Войти» с установленным прослушивателем щелчков (указывая на метод onSignInClicked
):
android:onClick="onSignInClicked"
Затем вы добавляете этот заголовок к каждому макету деятельности:
<include android:id="@+id/header" layout="@layout/header" />
Вы также можете создать интерфейс, содержащий метод onSignInClicked
декларации, и всеми вашими действиями, реализующими этот интерфейс, вы заставляете их определять тело метода onSignInClicked
.
То, что вы на самом деле делаете там, можно также включить в
- статический методвнутри глобально доступного класса или
- хорошо параметризованного метода внутри вашего
Application
класса расширения.
, поэтому во всех ваших действиях этот метод может быть:
public static void onSignInClicked(View view)
{
// static method with call with reference to the current activity
SignInHelper.doSignIn(this);
}
или
public static void onSignInClicked(View view)
{
// global method in your `Application` extension
// with reference to the current activity
((MyApplication)getApplicationContext()).doSignIn(this);
}
Если вы выберете второй способ, не забудьте обновить androidManifes.xml
, установив атрибут name
вашего тега application
:
<application android:name=".MyApplication" [...]