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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
kpoxaa
72 / 33 / 1
Регистрация: 03.08.2012
Сообщений: 447
#1

Запуск активности из класса, который не наследуется от Activity - Программирование Android

18.08.2013, 12:47. Просмотров 1749. Ответов 6
Метки нет (Все метки)

Есть класс, который отвечает за обработку логики. Есть функция, которая при определенном условии должна открыть новую форму(Активити). Подскажите, возможно ли это?

Логика всей программы такая: в мейн_активити идет обращение к классу с логикой, а уже оттуда вызывается новая активити.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.08.2013, 12:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запуск активности из класса, который не наследуется от Activity (Программирование Android):

Не открывается новое окно у которого класс наследуется не от Activity - Программирование Android
Помогите, у меня две активности, одна базовая наследуется от Activity и другая активность его класс наследуется от ListActivity. При...

Cпрятать компоненты в классе, который наследуется от DialogFragment - Программирование Android
Доброго времени суток. Столкнулся с проблемой, что не могу спрятать компоненты в классе который наследуеться от DialogFragment. Суть...

Запуск активности из фрагмента - Программирование Android
Доброго всем. Возникла такая проблема, для запуска активности хоста из фрагмента по нажатию кнопки(mPlayButton), использую...

Запуск другой активности работает на 2.3.3, а на 4.2.2 нет - Программирование Android
Задача: запустить активность другого приложения через am Делаю: создаю метод StartOtherActivity() и запускаю его, в манифест новый интент...

Запуск activity из service - Программирование Android
Добрый вечер! Как правильно запускать активность из сервиса? Метод startActivity(new Intent(this,MyActivity.class)); не работает,...

Запуск Activity по клику на виджет - Программирование Android
ни как не пойму как активити то вызвать из виджета?тост получилось чтоб вылезал, а активность не врублюсь ни как, помогите люди добрые

6
Wenceslaus
Android Developer
130 / 130 / 4
Регистрация: 05.07.2013
Сообщений: 205
18.08.2013, 12:59 #2
kpoxaa, возможно. В класс передайте Context самого MainActivity, а в нем уже
Java
1
context.startActivity(new Intent(context, NextActivity.class));
1
kpoxaa
72 / 33 / 1
Регистрация: 03.08.2012
Сообщений: 447
18.08.2013, 13:46  [ТС] #3
Из главного класса передать в класс с логикой context?

А как правильно передать?...
0
Wenceslaus
Android Developer
130 / 130 / 4
Регистрация: 05.07.2013
Сообщений: 205
18.08.2013, 14:06 #4
kpoxaa, да как угодно. Хоть в конструкторе:
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
public class MainActivity extends Activity {
    
    //...
    
    public void justDoIt() {
        Logic logic = new Logic(this);
        logic.doSomething(sameData);
    }
 
}
 
class Logic {
    
    Context context;
    
    public Logic(Context context) {
        this.context = context;
    }
    
    public void doSomething(SameData sameData) {
        if (sameData.getStaus()) {
            context.startActivity(new Intent(context, NextActivity.class));
        }
    }
    
}
хоть в самом методе:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class MainActivity extends Activity {
    
    //...
    
    public void justDoIt() {
        Logic logic = new Logic();
        logic.doSomething(this, sameData);
    }
 
}
 
class Logic {
    
    public void doSomething(Context context, SameData sameData) {
        if (sameData.getStaus()) {
            context.startActivity(new Intent(context, NextActivity.class));
        }
    }
    
}
Добавлено через 4 минуты
Activity является наследником Context. Так что передаём активность (this), а неявное преобразования машина сама выполнит.
1
kpoxaa
72 / 33 / 1
Регистрация: 03.08.2012
Сообщений: 447
18.08.2013, 15:06  [ТС] #5
Да спасибо. Сейчас попробую.

Я сейчас пытаюсь активировать вторую форму из главной формы и у меня при ее открытии выбрасывается ошибка. Не понимаю, что я делаю не так.

1. Создал файлы next_activity.xml и NextActivity.java. В файле с джава унаследовался от Активити и создал два метода 1 для создания формы второй для меню.
2. В файле манифест дописал еще одну активность.
3. Создал метод onClick. При нажатии на кнопку он активируется и должна открыться новая форма.

Java
1
2
3
4
5
public void onClick(View v)
    {
        Intent intent = new Intent(MainActivity.this, NextActivity.class);
        startActivity(intent);
    }
Никаких ошибок нету в коде, все компилируется. А вот на стадии выполнения пишет ошибку... В чем может быть проблема? Какой участок кода может быть неверным? Что показать, чтобы проверить?
0
verylazy
Заблокирован
18.08.2013, 15:08 #6
ошибку бы увидеть
0
kpoxaa
72 / 33 / 1
Регистрация: 03.08.2012
Сообщений: 447
18.08.2013, 15:34  [ТС] #7
А я понял кажется.... чтобы кнопка сработала нужно ее проинициализировать в коде как и остальные элементы.

Добавлено через 29 секунд
В ошибке писалось что ничего не работает попробуйте позже.

Добавлено через 23 минуты
Вот еще интересная ситуация. Если вызывать код открытия нового окна по событию кнопки, то все хорошо открывается. А если вызвать просто в обычном методе, то вылазит вот такой эррор.

Java
1
2
3
4
5
public void showWinActiv()
    {
        Intent intent = new Intent(MainActivity.this, ShowWin.class);
               startActivity(intent);
    }
The aplication has stopped unexpectedly. Please try again.
0
18.08.2013, 15:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.08.2013, 15:34
Привет! Вот еще темы с ответами:

Определить первый запуск Activity - Программирование Android
Ребята помогите. Как определить первый раз запускается Activity или нет. У меня задание: при первом запуске активити выполняется один код,...

Запуск Activity из другого apk - Программирование Android
Здравствуйте! Попытаюсь максимально собрать мысли в кучу и описать, то что мне надо. Есть скомпилированный apk файл без исходного кода,...

Как получить ссылку на экземпляр класса активности из ресивера - Программирование Android
Имеется ресивер, в нем объявлен интерфейс. Его методы определяется в MainActivity. Необходимо произвести обратный возов метода интерфейса....

Функция activity из другого класса - Программирование Android
Есть главная activity и создаю класс для отрисовки графики: Activity: public class General extends Activity { @Override ...


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

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

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