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

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

Восстановить пароль Регистрация
 
vadim23409
 Аватар для vadim23409
6 / 6 / 0
Регистрация: 24.09.2012
Сообщений: 378
06.11.2016, 01:07     OnClickListener не может вызвать метод с MainActivity #1
В 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
Android OnClickListener в Андроид
Не получается вызвать метод onDraw(); Android
Android Обработчик OnClickListener
OnClickListener Android
Android OnClickListener не срабатывает пояления imageView
Android Как запустить метод Fragment из MainActivity?
Не отлавливается View.OnClickListener Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vanchous
1 / 0 / 0
Регистрация: 06.11.2016
Сообщений: 22
06.11.2016, 02:37     OnClickListener не может вызвать метод с MainActivity #2
страшные вещи делаешь. стоит начать изучение андроида с нуля
Паблито
не спать!
1786 / 1520 / 472
Регистрация: 12.05.2014
Сообщений: 5,552
Завершенные тесты: 1
06.11.2016, 09:13     OnClickListener не может вызвать метод с MainActivity #3
неужели не видно что в onItemLongClick() прилетает параметр с таким же именем как и сохраненная ссылка на активити? parent
либо параметр переименовать, либо ссылку на активити, либо писать
Java
1
this.parent.selectCardFromList(); //
vadim23409
 Аватар для vadim23409
6 / 6 / 0
Регистрация: 24.09.2012
Сообщений: 378
06.11.2016, 20:16  [ТС]     OnClickListener не может вызвать метод с MainActivity #4
блин, вот это затупил) спасибо
Yandex
Объявления
06.11.2016, 20:16     OnClickListener не может вызвать метод с MainActivity
Ответ Создать тему
Опции темы

Текущее время: 05:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru