События Android: при реализации интерфейсов лучше использовать внешний класс или анонимные классы - PullRequest
3 голосов
/ 20 января 2011

Это пример использования внешнего класса

public class MyActivity extends Activity implements OnClickListener {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mylayout);
        findViewById(R.id.myid).setOnClickListener(this));
    }
    public void onClick(View v){...}
}

Это пример анонимных классов

public class MyActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mylayout);
        findViewById(R.id.myid).setOnClickListener(new OnClickListener() {
            public void onClick(View v){...}
        }));
    }
}

1 Ответ

5 голосов
/ 20 января 2011

Производительность и эффективность являются чуть более важным фактором в Android. Что-то, что считается недоделанным усилием по оптимизации, иногда имеет смысл в Android. Так что ответ на твой вопрос есть.

Если вам нужно зарегистрировать несколько прослушивателей onClick, реализуйте интерфейс и используйте в нем регистр переключения.

Если вам нужно зарегистрировать только одного прослушивателя при нажатии, используйте анонимный класс. (Разработчики Android предпочитают анонимный класс, когда это возможно. Ограничение области действия;))

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