С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
biosice
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 49
1

Замена фрагмента из другого класса

31.01.2015, 05:35. Просмотров 558. Ответов 1
Метки нет (Все метки)

Здравствуйте, такой вопрос появился у меня...
значит есть класс main в котором реализовано переход по фрагментам и отрисовка фрагмента (для свайп меню)
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
 if (fragment != null) {
 
            FragmentManager fragmentManager = getFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
 
            //add a fragment
 
            fragmentTransaction.replace(R.id.content_frame, fragment);
357            fragmentTransaction.commit();
            getFragmentManager().executePendingTransactions();
            // update selected item and title, then close the drawer
            try {
 
                myDrawerList.setItemChecked(position, true);
                myDrawerList.setSelection(position);
                setTitle(viewsNames[position]);
                myDrawerLayout.closeDrawer(myDrawerList);
            } catch (Exception e) {
 
            }
        } else {
            // error in creating fragment
            Log.e("MainActivity", "Error in creating fragment");
        }

и класс в котором по кнопке нужно перейти в другой фрагмент

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
27
28
29
30
31
32
main get_d;
 
    public start_screen(Context applicationContext) {
        get_d = new main();
       // get_d = applicationContext;
    }
 
 
 
    @Override
 
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
 
        View rootView = inflater.inflate(R.layout.start_screen, container, false);
 
        return rootView;
    }
    @Override
    public void onStart(){
        super.onStart();
        login_submit = (Button)getActivity().findViewById(R.id.b_login);
        
        login_submit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
 
218.        get_d.displayView(8);
            }
        });
    }
}
я понимаю что нужно как то передать контекст о том что этот класс main уже создан и новый не нужно создавать но вопрос как?
если создать новый экземпляр через new main();
то ошибка:

Кликните здесь для просмотра всего текста
java.lang.IllegalStateException: Activity has been destroyed
at android.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1350)
at android.app.BackStackRecord.commitInternal(BackStackRecord.java:728)
at android.app.BackStackRecord.commit(BackStackRecord.java:704)
at com.*.*.main.displayView(main.java:357)
at com.*.*..start_screen$1.onClick(start_screen.java:218)



это пытаюсь сделать для того чтобы каждый класс где есть переход на фрагмент не перегружать лишней функцией которую я копирую из main
просто хочется выполнять ее из класса main
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2015, 05:35
Ответы с готовыми решениями:

Изменить текст TextView другого Фрагмента, не открывая его
Могу передать данные из Activiry во фрагмента когда он открыт. blank1 =...

Как изменить Textview из другого класса (класса адаптера RecyclerView)
У меня есть список RecyclerView тоесть этот файл Basket и файл что реализует...

Повторное создание фрагмента внутри фрагмента ViewPager
Доброго времени суток! Использую внутри фрагмента элемент ViewPager, который...

Вызов фрагмента из фрагмента с использованием EventBus
Доброго времени суток! Можно ли использовать EventBus для того, что из...

Обращение к методу другого класса
Привет Не пинайте за возможный бред, я учусь) В общем мне необходимо вызвать...

1
dtx1212
6 / 6 / 3
Регистрация: 08.12.2013
Сообщений: 26
31.01.2015, 21:07 2
Если я правильно тебя понял, то тебе нужно просто привести activity к нужному типу.
Java
1
((MainActivity)getActivity()).method();
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.01.2015, 21:07

Получение данных из другого класса
Подскажите как решить проблему. У меня есть два класса разнесенных по разным...

Обращение к ImageView из другого класса
Здравствуйте, проблема в следующем. В MainActivity.class объявил переменные и...

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


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

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

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