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

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

Восстановить пароль Регистрация
 
biosice
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 49
31.01.2015, 05:35     Замена фрагмента из другого класса #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 Обращение к элементам активити из другого класса
Как запустить метод из другого класса? Android
Android Обращение к методу другого класса
Android Получение данных из другого класса
Импорт класса из другого проекта Android
Android Как выполнить setContentView из другого класса?
Получить доступ к EditText из другого класса Android
Вызов нестатического метода из другого класса Android
Доступ к элементам Activity из другого класса Android
Функция activity из другого класса Android
Android Изменить текст TextView другого Фрагмента, не открывая его
Android Повторное создание фрагмента внутри фрагмента ViewPager

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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     Замена фрагмента из другого класса
Ответ Создать тему
Опции темы

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