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

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

Войти
Регистрация
Восстановить пароль
 
biosice
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 49
#1

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

31.01.2015, 05:35. Просмотров 446. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2015, 05:35     Замена фрагмента из другого класса
Посмотрите здесь:
Android Изменить текст TextView другого Фрагмента, не открывая его
Android Как изменить Textview из другого класса (класса адаптера RecyclerView)
Android Повторное создание фрагмента внутри фрагмента ViewPager
Android Получение данных из другого класса
Android Обращение к методу другого класса
Вызов метода из другого класса Android
Импорт класса из другого проекта Android
Функция activity из другого класса Android
Получить доступ к EditText из другого класса Android
Android Как выполнить setContentView из другого класса?
Android Обращение к элементам активити из другого класса
Как запустить метод из другого класса? Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dtx1212
6 / 6 / 1
Регистрация: 08.12.2013
Сообщений: 26
31.01.2015, 21:07     Замена фрагмента из другого класса #2
Если я правильно тебя понял, то тебе нужно просто привести activity к нужному типу.
Java
1
((MainActivity)getActivity()).method();
Yandex
Объявления
31.01.2015, 21:07     Замена фрагмента из другого класса
Ответ Создать тему
Опции темы

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