Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
#1

Context немного теории - Программирование Android

02.04.2014, 12:48. Просмотров 658. Ответов 5
Метки нет (Все метки)

Вообщем нужно мне было запустить из метода своего класса фрагмент. Вообщем как положено передал в класс контекст все дела.

Java
1
2
3
4
5
6
public Constructor (Context ctx) {
        super(ctx);
        this.ctx = ctx;
ctx.getSupportFragmentManager().beginTransaction()
    .add(R.id.container, frag).commit();
    }
компилятор писал, что getSupportFragmentManager() не существует. тогда заменил все это дело на следующее.

Java
1
2
3
4
5
6
public Constructor (MainActivity mainActivity) {
        super(mainActivity);
        this.ctx = ctx;
mainActivity.getSupportFragmentManager().beginTransaction()
    .add(R.id.container, frag).commit();
    }
тогда ошибка перестала выскакивать.При том что при объявлении класса как было
Java
1
new Constructor(this)
ток и осталось. В чем разница между конструкторами? Объясните пожалста.
http://www.cyberforum.ru/android-dev/thread1073363.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2014, 12:48
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Context немного теории (Программирование Android):

Объект Context
Проблема такая: Я создаю новый класс в отдельном файле для работыSQLite и в...

Fragment and context
Есть шерлокбар. Два таба у него. Каждому табу привязан свой фрагмент...

Context - ошибка
Здравствуйте! Программа должна выводить карту из google. Использую Picasso как...

Аналог context menu
Всем привет. Я пишу судоку. Проблема в том что при взаимодействии с ячейкой...

Программирование Android. Context
Добрый день! Прошу подсказать, почему в доках...

5
Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
02.04.2014, 13:30 #2
Activity наследует Context, т.е. то что есть в классе Context есть и в классе Activity, но не обратное.
Разницы нет, в обоих случаях передается Activity.
Java
1
2
3
4
5
6
    public Constructor (Context ctx) {
        super(ctx);
        this.ctx = ctx;
        ((FragmentActivity)ctx).getSupportFragmentManager().beginTransaction()
                .add(R.id.container, frag).commit();
    }
1
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
02.04.2014, 14:33  [ТС] #3
Netscape, вот и я думаю вроде как одно и тоже но не работает. Только не понятно почему не срабатывает преобразование типов.
0
Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
02.04.2014, 15:26 #4
KillAndEat, ну оно вроде как тут и не должно срабатывать.
Класс Context не в курсе что за метод getSupportFragmentManager и все, также он не в курсе что существует класс Activity, который его наследует.
1
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
02.04.2014, 15:29  [ТС] #5
понял. метод принадлежит активити. В таком случае что значит это комбинация?

Java
1
((FragmentActivity)ctx)
ручное преобразование же?
0
Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
02.04.2014, 15:30 #6
Цитата Сообщение от KillAndEat Посмотреть сообщение
ручное преобразование же?
Да, оно самое.
1
02.04.2014, 15:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2014, 15:30
Привет! Вот еще темы с решениями:

Можно ли так передавать context?
Не приведет ли это к утечке памяти? public class A{ public static void...

AsyncTask должен использовать Context
Добрый день! Мое приложение должно использовать сетевое соединение,...

Использование Context в других классах
У меня есть диалоговое окно, в котором я использую список. Требуется считать...

Toast.makeText. Параметр context
public static void MyFunction(Context context, int param1, int param2) { //...


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

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

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