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

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

Войти
Регистрация
Восстановить пароль
 
xSCJx
22 / 19 / 1
Регистрация: 24.12.2012
Сообщений: 435
#1

FragmentTransaction.remove ошибка - Программирование Android

20.05.2015, 00:38. Просмотров 277. Ответов 3
Метки нет (Все метки)

Привет. Не пойму, почему не удаляется фрагмент?

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center">
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ACTIVITY LAYOUT" />
 
    <Button
        android:id="@+id/del_button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="RemoveFragment" />
 
    <FrameLayout
        android:id="@+id/button_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
 
</LinearLayout>
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
FragmentManager fragmentManager = getSupportFragmentManager();
 
        final FragmentTransaction fragmentTransaction =
                fragmentManager.beginTransaction();
        fragmentTransaction.add(R.id.button_container, new ButtonFragment()).commit();
 
        /////////////////
 
        Button delButton = (Button)findViewById(R.id.del_button);
        delButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Fragment fragment = (ButtonFragment)getSupportFragmentManager()
                      .findFragmentById(R.id.button_container);
 
                Log.i("TAG", fragment == null ? "NULL" : "NotNull");
 
                fragmentTransaction.remove(fragment).commit();
            }
        });
Добавлено через 30 минут
если перенести
Java
1
2
3
 FragmentManager fragmentManager = getSupportFragmentManager();
                FragmentTransaction fragmentTransaction =
                        fragmentManager.beginTransaction();
в onClick, то все отлично, но почему не работает так? Без переноса.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2015, 00:38     FragmentTransaction.remove ошибка
Посмотрите здесь:

Ругается на FragmentTransaction - Программирование Android
Пишу Bluetooth-чат. Пример был взят с GoogleDev. Студия ругается мол символ неизвестный, хотя библиотеку подключил, в чем проблема? ...

Метод remove() у ArrayList не умеет работать с переменными? - Программирование Android
Есть массив EditText-ов. Если указывать индекс его методу remove() напрямую - элемент удаляется; Если указывать индекс через...

Реализовать аппликативный оператор MY-REMOVE-IF с интерфейсом и семантикой, аналогично стандартному REMOVE-IF - Lisp
Реализовать аппликативный оператор MY-REMOVE-IF с интерфейсом и семантикой, аналогично стандартному REMOVE-IF.

Функция remove() удаляет только заранее запланированые файлы, выдавая ошибку на remove (STRING) - C++
Салем, начал изучать файловую работу в С++, и столкнулся с такой проблемой, что функция remove() соглашается удалять только заранее...

Ошибка при явной реализации методов Add и Remove - C#
Добрый день. Есть два класса событий MyEvent и MyEvent2, код ниже. С первым классов все в порядке. Но есть ошибка в реализации второго...

Remove - MS Access
kak v Accesse lyche ydalit is fileda snaki '#' ili ''? Pri etom chobu sapis ostalas v field, no bez etogo snaka.

Remove - Debian Linux
Ребята, подскажите, почему на # apt-get remove rhythmbox удаляется также и network-manager и software-center и ещё куча нужного...

Find, remove - jQuery
Здравствуйте! Имеется вот такой код: &lt;div class=&quot;amazingslider-box-1&quot;&gt; &lt;div class=&quot;amazingslider-swipe-box-1&quot;&gt;&lt;/div&gt; ...

ArrayList.remove() - Java SE
Есть такой код. ArrayList&lt;NewClass&gt; list = new ArrayList&lt;NewClass&gt;(); //Добавляем 10 объектов класса NewClass list.add(NewClass); ...

Remove() не работает - jQuery
Доброй ночи) помогите разобраться с проблемой. https://jsfiddle.net/qp3nnfc5/ - тут проблема следующая. Не удаляет элемент списка...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mikalai
256 / 232 / 93
Регистрация: 11.01.2015
Сообщений: 651
20.05.2015, 01:24     FragmentTransaction.remove ошибка #2
Наверное потому что был сделан commit
xSCJx
22 / 19 / 1
Регистрация: 24.12.2012
Сообщений: 435
21.05.2015, 17:10  [ТС]     FragmentTransaction.remove ошибка #3
Цитата Сообщение от Mikalai Посмотреть сообщение
Наверное потому что был сделан commit
и что?
Mikalai
256 / 232 / 93
Регистрация: 11.01.2015
Сообщений: 651
21.05.2015, 21:13     FragmentTransaction.remove ошибка #4
Попробуй так сделать:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
FragmentManager fragmentManager;
FragmentTransaction fragmentTransaction;
 
//...........
 
fragmentManager = getFragmentManager();
 
//...........
 
fragmentTransaction = fragmentManager.beginTransaction();
//тут действие с фрагментами 1
fragmentTransaction.commit();
 
//...........
 
fragmentTransaction = fragmentManager.beginTransaction();
//тут действие с фрагментами 2
fragmentTransaction.commit();
Что бы не использовать тут final переменных убери анонимный класс и просто имплементируй интерфейс.
Yandex
Объявления
21.05.2015, 21:13     FragmentTransaction.remove ошибка
Ответ Создать тему
Опции темы

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