Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
vadim23409
6 / 6 / 0
Регистрация: 24.09.2012
Сообщений: 380
#1

OnClickListener не может вызвать метод с MainActivity - Программирование Android

06.11.2016, 01:07. Просмотров 185. Ответов 3
Метки нет (Все метки)

В MainActivity в onClickListener я могу вызвать метод selectCardFromList:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class MainActivity extends AppCompatActivity {
 
    CardClickListener cardClickListener;
    UIClickListener uiClickListener;
    ListView cardsListView;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        cardsListView = (ListView) findViewById(R.id.cardsListView);
 
        cardClickListener = new CardClickListener(this);
        cardsListView.setOnItemClickListener(cardClickListener);
        cardsListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
                selectCardFromList(1); //работает
            }
        });
 
    testFill();
 
    }
 
public void selectCardFromList(int index)
    {
 
    }
но если я в этом же методе onCreate создаю объект класа, в котором есть onClickListener, то, даже имея ссылку, я этого сделать не могу:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class CardClickListener implements ListView.OnItemLongClickListener{
 
    private MainActivity parent;
 
    public CardClickListener(MainActivity creator)
    {
        parent = creator;
        parent.selectCardFromList(0);
    }
 
    @Override
    public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
        parent.selectCardFromList(); //даже не компилируется, ошибка
        return true;
    }
}
хотелось бы все это реализовать в отдельных классах, а не все пихать в MainActivity...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2016, 01:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос OnClickListener не может вызвать метод с MainActivity (Программирование Android):

Как запустить метод Fragment из MainActivity? - Программирование Android
есть фрагмент с картой, в нем метод: public void Sputnik(GoogleMap map) { ...

Вызвать метод класса - Программирование Android
получил ссылку на класс по его имени Class &lt;?&gt; cls = null; try { cls = Class.forName(classname); } catch...

Не получается вызвать метод onDraw(); - Программирование Android
Здравствуйте! Я новичок в разработке приложений под android и сегодня безрезультатно провел день, т.к. не знаю решения моей проблемы....

OnClickListener - Программирование Android
Хочу сделать обработчик нажатий в одном блоке, но что-то идет не так на OnClick, жалуется что не используется.. Что я делаю не так? ...

Обработчик OnClickListener - Программирование Android
Добрый день, начал изучать интерфейсы и как оказалось в JAVA нельзя создать экземпляр интерфейса. Здесь же OnClickListener oclBtnOk =...

OnClickListener в Андроид - Программирование Android
Всем доброго времени суток!!! Я новичок в программировании Андроид устройств. Я программирую в среде Eclipse с Android SDK tools. Вопрос...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
vanchous
1 / 0 / 0
Регистрация: 06.11.2016
Сообщений: 22
06.11.2016, 02:37 #2
страшные вещи делаешь. стоит начать изучение андроида с нуля
Pablito
2470 / 1915 / 595
Регистрация: 12.05.2014
Сообщений: 6,740
Завершенные тесты: 1
06.11.2016, 09:13 #3
неужели не видно что в onItemLongClick() прилетает параметр с таким же именем как и сохраненная ссылка на активити? parent
либо параметр переименовать, либо ссылку на активити, либо писать
Java
1
this.parent.selectCardFromList(); //
vadim23409
6 / 6 / 0
Регистрация: 24.09.2012
Сообщений: 380
06.11.2016, 20:16  [ТС] #4
блин, вот это затупил) спасибо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2016, 20:16
Привет! Вот еще темы с ответами:

Как вызвать метод только при последующих запусках приложения? - Программирование Android
Доброго времени суток))) В приложении реализую систему сохранения. Нужно, чтобы при первом запуске появлялись &quot;дефолтные&quot; значения, а при...

Не отлавливается View.OnClickListener - Программирование Android
Написал следующий код, список появляется с элементами все работает. а вот на карточку внутри списка нажатие не хочет отрабатывать. еще...

Клиент bluetooth. как в кнопке правильно вызвать метод для подключения? - Программирование Android
нашел в интернете готовый класс private class ConnectThread extends Thread { private final BluetoothSocket mmSocket; ...

Просьба объяснить конструкуцию OnClickListener - Программирование Android
Добрый день, есть конструкция обработки нажатия кнопки, подскажите, правильно ли я понимаю: button.setOnClickListener(new...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.11.2016, 20:16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru