Одно нажатие вместо двух разных

243
11 марта 2017, 01:40

Был одна кнопка, работало всё замечательно, решил добавить вторую и понеслось, хотя в ней метод и другой но делает она то же самое что и первая, а первая в свою очередь не работает. Возможно дело в обработчиках нажатия, но если честно на мой ещё совсем не профессианальный взнгляд вроде всё норм.

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);
Answer 1

У вас какая-то путаница в ссылках на слушатель тача приключилась. В данном случае можно слушатели нажатий назначать создав отдельную переменную для каждой

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();
    }
}); 
READ ALSO
LibGDX с рекламой Admob

LibGDX с рекламой Admob

Видел пару инструкции в интернете по подключение баннеров в приложение, но все они абсолютно разныеВ общем прошу подсказать будет ли данный...

371
Графика onDraw c событием

Графика onDraw c событием

Почему у меня при запуске не отображается TextView и как правильно реализовать смену текста в активити, я сделал через геттер

200
Как повторно выполнить animate?

Как повторно выполнить animate?

Написал вот так на нажатие button-аПри первом нажатий все отлично выполнилась - фигура textView5 опустилась на 300 пикселей вниз

219
Поиск фрагмента текста в файле от фрагмента до символа

Поиск фрагмента текста в файле от фрагмента до символа

В этом классе я ищу фграгмент текста в файле по полному совпадениюКак сделать так что-бы после полного совпадения программа считывала строку...

294