![]() |
Модераторы: javastic |
![]() ![]() ![]() |
|
Burka |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.5.2007 Репутация: нет Всего: 2 |
Пишу приложение под андройд используя сторонее сдк. Проблема в том что я не могу обратится к классу из другого класса.
вот что делается в коде сначала вызывается метод InitSDK в нем в MNDirect.init передается класс-обработчик событий MNEventHandler потом в приложении вызывается метод ShowSDk которое создает активити DashBoardActivity Проблема в том что я немогу в классе MNEventHandler закрыть активити DashBoardActivity (или если описать класс MNEventHandler внутри DashBoardActivity , то я не могу передать в MNDirect.init обработчик собыйтий) подскажите как можно решить проблему?
код самой активити
-------------------- Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей. |
||||
|
|||||
ivanovpv |
|
|||
![]() Варвар ![]() ![]() Профиль Группа: Участник Сообщений: 639 Регистрация: 26.1.2005 Где: Москва Репутация: 9 Всего: 28 |
А почему нельзя в конструкторе MNEventHandler передать активити которое ему надо будет потом закрыть? Тогда все вроде складывается, не?
-------------------- Aut viam inveniam aut faciam |
|||
|
||||
Burka |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.5.2007 Репутация: нет Всего: 2 |
а можешь показать как? я пробовал но что то у меня не получалось -------------------- Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей. |
|||
|
||||
Burka |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.5.2007 Репутация: нет Всего: 2 |
я пробовал сохранять ссылку на активити, но при компиляции так же ошибка enclosing class
-------------------- Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей. |
|||
|
||||
Burka |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.5.2007 Репутация: нет Всего: 2 |
подскажите, кто-нибудь, рабочий вариант, я сам в яве не силен, а очень нужно
-------------------- Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей. |
|||
|
||||
ivanovpv |
|
||||||
![]() Варвар ![]() ![]() Профиль Группа: Участник Сообщений: 639 Регистрация: 26.1.2005 Где: Москва Репутация: 9 Всего: 28 |
Ненавижу анонимные классы - вынеси в нормальный класс в отдельный файл, разложи по полочкам и все будет.
Теперь вызываем:
В общем как то так... P.S. Да и кстати, именования переменных у вас не совсем джаверское... Почитайте документацию -------------------- Aut viam inveniam aut faciam |
||||||
|
|||||||
Burka |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.5.2007 Репутация: нет Всего: 2 |
ivanovpv, спасибо за помощь.
но у меня не получается один момент. здесь мы передаем активити DashActivity
допустим я его создаю так
а как правильно используя это активити создать Intent? этот код оставить или что то менять нужно? я сам пишу на си, и поэтому для меня не все тут понятно
то есть если я правильно понимаю сейчас два разных экземпляра DashBoardActivity Это сообщение отредактировал(а) Burka - 12.10.2011, 12:08 -------------------- Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей. |
||||||
|
|||||||
ivanovpv |
|
|||
![]() Варвар ![]() ![]() Профиль Группа: Участник Сообщений: 639 Регистрация: 26.1.2005 Где: Москва Репутация: 9 Всего: 28 |
Сначала надо создать объект и только потом передавать его! Иначе какой от него толк в приемнике? В сях все равно та же идеология (до и вообще везде!)
Создание Activity - это фактически его запуск через Intent (у вас написано в showAds()). То есть вам надо сначала запустить Activity и потом передать его в ваш хэндлер. Скорее даже наоборот в onCreate() вашего DashActivity вставить вызов хэндлера и все такое - ну я не знаю же ваш код! В общем идея простая: а) Создайте/запустите ваш активити б) Затем придумайте как его передать в хэндлер (способ я показал) в) Затем уже из хэндлера при необходимости спокойно убивайте -------------------- Aut viam inveniam aut faciam |
|||
|
||||
Burka |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.5.2007 Репутация: нет Всего: 2 |
Да извиняюсь, не туда вставил. С хендлером понятно, не понятно с Intent
Если создавать Intent так, то поидее будет создан второй экземпляр DashBoardActivity, который никак не относится к DashActivity. А как создать Intent используя переменную DashBoard я не могу понять. для меня именно этот момент не понятен, потому что выдрать ссылку на активити не получается никак из созданого Intent. Хотя судя по всему активити создается
Это сообщение отредактировал(а) Burka - 12.10.2011, 12:17 -------------------- Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей. |
||||
|
|||||
ivanovpv |
|
|||
![]() Варвар ![]() ![]() Профиль Группа: Участник Сообщений: 639 Регистрация: 26.1.2005 Где: Москва Репутация: 9 Всего: 28 |
Burka, от того что вы вызвали конструктор Activity - ничего не происходит. Активити не создается вызовом конструктора! Конструктор активити ось вызывает сама. Способ создания активити - один через Intent и все. Прочитайте про жизненный цикл активити
Я же вам уже сказал как надо действовать: 1) Создать активити через Intent 2) Далее в методе onCreate() активити у вас будет ссылка на саму активити в виде this 3) Теперь берите этот this и пихайте его в ваш хэндлер Это сообщение отредактировал(а) ivanovpv - 13.10.2011, 08:04 -------------------- Aut viam inveniam aut faciam |
|||
|
||||
Burka |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.5.2007 Репутация: нет Всего: 2 |
Если не сложно посмотрите что тут не так, сделал все по списку. Получаю ошибку
ошибка сразу при инициализации, в методе InitSDK. уже не знаю что можно сделать
Активити
-------------------- Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей. |
||||||
|
|||||||
ivanovpv |
|
|||
![]() Варвар ![]() ![]() Профиль Группа: Участник Сообщений: 639 Регистрация: 26.1.2005 Где: Москва Репутация: 9 Всего: 28 |
Вообще то я не компилятор
![]() Тем не менее сразу же видно, что вы пытаетесь использовать член класса до его инициализации... Вы не запустив DashboardActivity пытаетесь достучаться до apoint! Кто будет делать intent.startActivity()? Дядя Вася или все таки вы своими рученьками? ![]() Да, и кстати делать это надо раньше - до вызова run() - поскольку startActivity() отработает только после того как управление вернется к оконной системе Это сообщение отредактировал(а) ivanovpv - 14.10.2011, 08:32 -------------------- Aut viam inveniam aut faciam |
|||
|
||||
Burka |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.5.2007 Репутация: нет Всего: 2 |
А что делать если мне не нужно активити запускать при инициализации программы? Но инициализацию SDK надо сделать Это сообщение отредактировал(а) Burka - 14.10.2011, 16:15 -------------------- Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей. |
|||
|
||||
ivanovpv |
|
|||
![]() Варвар ![]() ![]() Профиль Группа: Участник Сообщений: 639 Регистрация: 26.1.2005 Где: Москва Репутация: 9 Всего: 28 |
Ну так и сказали бы! Передавайте тогда в хэндлер Intent -------------------- Aut viam inveniam aut faciam |
|||
|
||||
newfin |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 25.11.2011 Где: Россия Липецк Репутация: нет Всего: нет |
У меня тоже такое было. А еще почему не работает GPS на телефоне модель НТС, хотя на WM все работает.
|
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Android | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |