Был одна кнопка, работало всё замечательно, решил добавить вторую и понеслось, хотя в ней метод и другой но делает она то же самое что и первая, а первая в свою очередь не работает. Возможно дело в обработчиках нажатия, но если честно на мой ещё совсем не профессианальный взнгляд вроде всё норм.
this.infoButtonListener = new OnInfoWindowElemTouchListener(callButton,
getResources().getDrawable(R.drawable.round_but_green_sel),
getResources().getDrawable(R.drawable.round_but_red_sel))
{
@Override
protected void onClickConfirmed(View v, Marker marker) {
makeCall(marker);
}
};
this.callButton.setOnTouchListener(infoButtonListener);
this.infoButtonListener = new OnInfoWindowElemTouchListener(sendButton,
getResources().getDrawable(R.drawable.round_but_red_sel),
getResources().getDrawable(R.drawable.round_but_red_sel))
{
@Override
protected void onClickConfirmed(View v, Marker marker) {
sendEmail();
}
};
this.sendButton.setOnTouchListener(infoButtonListener);
Подскажите пожалуйста как исправить проблему?
Вариант решения
nInfoWindowElemTouchListener listenerCall = new OnInfoWindowElemTouchListener(sendButton,
getResources().getDrawable(R.drawable.round_but_green_sel),
getResources().getDrawable(R.drawable.round_but_red_sel)) {
@Override
protected void onClickConfirmed(View v, Marker marker) {
sendEmail();
}
};
this.sendButton.setOnTouchListener(infoButtonListener);
У вас какая-то путаница в ссылках на слушатель тача приключилась. В данном случае можно слушатели нажатий назначать создав отдельную переменную для каждой
OnInfoWindowElemTouchListener listenerCall = new OnInfoWindowElemTouchListener(sendButton,
getResources().getDrawable(R.drawable.round_but_green_sel),
getResources().getDrawable(R.drawable.round_but_red_sel)) {
@Override
protected void onClickConfirmed(View v, Marker marker) {
sendEmail();
}
};
this.sendButton.setOnTouchListener(listenerCall);
или даже просто передавая анонимный класс, не создавая лишних переменных так:
this.sendButton.setOnTouchListener(new OnInfoWindowElemTouchListener(sendButton,
getResources().getDrawable(R.drawable.round_but_green_sel),
getResources().getDrawable(R.drawable.round_but_red_sel)) {
@Override
protected void onClickConfirmed(View v, Marker marker) {
sendEmail();
}
});
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники