Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
vadim23409
6 / 6 / 2
Регистрация: 24.09.2012
Сообщений: 381
#1

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

06.11.2016, 01:07. Просмотров 240. Ответов 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...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2016, 01:07
Я подобрал для вас темы с готовыми решениями и ответами на вопрос OnClickListener не может вызвать метод с MainActivity (Программирование Android):

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

Вызвать метод класса
получил ссылку на класс по его имени Class &lt;?&gt; cls = null; try { cls =...

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

OnClickListener
Хочу сделать обработчик нажатий в одном блоке, но что-то идет не так на...

Не работает onclicklistener
Задача вроде бы до ужаса простая, мне нужно просто при нажатии перейти на...

OnClickListener в Андроид
Всем доброго времени суток!!! Я новичок в программировании Андроид устройств. Я...

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

Обработчик OnClickListener
Добрый день, начал изучать интерфейсы и как оказалось в JAVA нельзя создать...

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

Не отлавливается View.OnClickListener
Написал следующий код, список появляется с элементами все работает. а вот на...

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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