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

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

Войти
Регистрация
Восстановить пароль
 
odradek
4 / 4 / 1
Регистрация: 15.05.2012
Сообщений: 63
#1

Открыть активити не из главного класса - Android

04.06.2013, 21:01. Просмотров 968. Ответов 8
Метки нет (Все метки)

привет всем.
ситуация такая:
есть класс (обычный класс с методами) в котором в потоке допустим выполняются какие-либо действия.
и в конце этих операций мне нужно открыть новое активити.
примерно вот так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
protected String doInBackground(String... params) {
        
        String str= null;
        
        try
        {
            str = send(url);
            Log.d("USPESHNO", "null");
               
                // и вот здесь мне нужно открыть активити
 
        
        } catch (Exception e)
        {
            Log.d("NE USPESHNO", "null");
        }
 
        return str;
        
    }
чтобы открыть активити, насколько я понял нужно, чтобы класс расширял клас Activity и в конструкторе Intent указать 2 параметра.
1. this текущего класса
2. имя класса
так вот, мне нужно открыть активити не по нажатию на кнопку и не из главного класса (т.е активити)
возможно ли это сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2013, 21:01     Открыть активити не из главного класса
Посмотрите здесь:

Android Обращение к элементам активити из другого класса
Android Активити
Android Изменение параметров активити из другого активити
Открыть второй активити Android
Вызов новой активити не из класса активити Android
Как вызвать метод в активити классе из обычного не активити класса? Android
При нажатии на пункт меню открыть новое активити Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Hank
49 / 40 / 3
Регистрация: 28.12.2011
Сообщений: 229
04.06.2013, 21:08     Открыть активити не из главного класса #2
Воспользуйтесь классом AsyncTask и активити свое открывайте в методе onPostExecute.
odradek
4 / 4 / 1
Регистрация: 15.05.2012
Сообщений: 63
04.06.2013, 21:25  [ТС]     Открыть активити не из главного класса #3
я использую AsyncTask
как открыть активити из другого класса?

Добавлено через 8 минут
допустим General - главный класс с активити
Work - класс расширяет AsyncTask и из него мне нужно открыть активити
Add - второе активити, которые нужно открыть.

этот код не пойдет:
Java
1
2
Intent intent = new Intent(this, Add.class);
startActivity(intent);
Hank
49 / 40 / 3
Регистрация: 28.12.2011
Сообщений: 229
04.06.2013, 22:05     Открыть активити не из главного класса #4
этот код не пойдет:
Это вопрос?
odradek
4 / 4 / 1
Регистрация: 15.05.2012
Сообщений: 63
04.06.2013, 22:12  [ТС]     Открыть активити не из главного класса #5
Цитата Сообщение от Hank Посмотреть сообщение
Это вопрос?
нет.
делаю так:
в главном активити в глобальную публичную статичную переменную загоняю контекст.
Java
1
2
public static Context con;
con = getApplicationContext();
затем в другом классе создаю метод:
Java
1
2
3
4
5
public void func(Context context) {
        Intent intent = new Intent(context, Works.class);
        context.startActivity(intent);
 
    }
и в другом методе в этом же классе делаю:
Java
1
func(General.con);
но приложение завершается с ошибкой.
что здесь не так?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.06.2013, 22:19     Открыть активити не из главного класса #6
Цитата Сообщение от odradek Посмотреть сообщение
но приложение завершается с ошибкой.
что здесь не так?
смотрите логи.
odradek
4 / 4 / 1
Регистрация: 15.05.2012
Сообщений: 63
04.06.2013, 22:20  [ТС]     Открыть активити не из главного класса #7
наконец-то разобрался!
нужно было указать не
Java
1
con = getApplicationContext();
а
Java
1
con = this
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.06.2013, 22:26     Открыть активити не из главного класса #8
а не проще передать контекст в конструктор этого класса?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2013, 00:58     Открыть активити не из главного класса
Еще ссылки по теме:

Android Открыть старое активити при клике на уведомление
Android Как с ListFragment передать имя файла чтобы открыть его в другом Активити?
Как открыть PUSH в активити? Android
Один экземпляр класса для всех активити Android
На телефоне highscreen 3 на всех активити происходит быстрый самовозврат к главной активити Android

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

Или воспользуйтесь поиском по форуму:
haribo
41 / 41 / 3
Регистрация: 26.05.2013
Сообщений: 160
06.06.2013, 00:58     Открыть активити не из главного класса #9
оно?
Java
1
2
3
4
5
        Intent i = new Intent();
        i.setClassName("ru.lookmyway", "MainMapActivity");
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        i.putExtra("from", "camera");
        context.startActivity(i);
Yandex
Объявления
06.06.2013, 00:58     Открыть активити не из главного класса
Ответ Создать тему
Опции темы

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