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

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

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

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

31.01.2015, 05:35. Просмотров 452. Ответов 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
Могу передать данные из Activiry во фрагмента когда он открыт. blank1 = new BlankFragment(); if (blank1 != null) { ...

Как изменить Textview из другого класса (класса адаптера RecyclerView) - Программирование Android
У меня есть список RecyclerView тоесть этот файл Basket и файл что реализует cardwiew BasketAdapter. как мне изменить TextView allPrice из...

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

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

Функция activity из другого класса - Программирование Android
Есть главная activity и создаю класс для отрисовки графики: Activity: public class General extends Activity { @Override ...

Импорт класса из другого проекта - Программирование Android
Подскажите, пожалуйста, каким образом я могу импортировать класс Java, который был объявлен в другом проекте (среда - Eclipse) ? ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
dtx1212
6 / 6 / 1
Регистрация: 08.12.2013
Сообщений: 26
31.01.2015, 21:07 #2
Если я правильно тебя понял, то тебе нужно просто привести activity к нужному типу.
Java
1
((MainActivity)getActivity()).method();
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.01.2015, 21:07
Привет! Вот еще темы с ответами:

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

Получение данных из другого класса - Программирование Android
Подскажите как решить проблему. У меня есть два класса разнесенных по разным файлам: ListFragment и DialogFragment. Cуть...

Получить доступ к EditText из другого класса - Программирование Android
И снова нюбо - вопросы. Есть задача создать класс и с него получить доступ к EditText что находится в main_activity для вноса и выноса...

Вызов нестатического метода из другого класса - Программирование Android
Здравствуйте. Подскажите, как можно вызвать нестатистический метод из другого класса. 1.Этот другой класс нельзя наследовать тем...


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

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

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