Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
kpoxaa
74 / 35 / 1
Регистрация: 03.08.2012
Сообщений: 447
#1

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

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

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

Логика всей программы такая: в мейн_активити идет обращение к классу с логикой, а уже оттуда вызывается новая активити.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.08.2013, 12:47
Ответы с готовыми решениями:

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

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

Запуск активности из фрагмента
Доброго всем. Возникла такая проблема, для запуска активности хоста из...

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

Запуск activity из service
Добрый вечер! Как правильно запускать активность из сервиса? Метод...

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

А как правильно передать?...
0
Wenceslaus
Android Developer
130 / 130 / 6
Регистрация: 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
74 / 35 / 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
74 / 35 / 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 из другого apk
Здравствуйте! Попытаюсь максимально собрать мысли в кучу и описать, то что мне...

Запуск activity на половину экрана
Можно ли запустить activity, например на полэкрана, чтобы видно было первой...

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


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

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

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