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

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

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

Reload Fragment - Программирование Android

04.06.2015, 22:36. Просмотров 409. Ответов 2
Метки нет (Все метки)

Такая проблема, по нажатию кнопки поиска у меня возвращается список, под который на фрагменте создаются layout's. Пытаюсь сделать так, чтобы при каждом нажатии кнопки фрагмент перезагружался, чтобы выдача каждый раз была с нуля. Беда в том, что при использовании detach и attach список не отображается вообще. То есть он появляется на какую-то долю секунды и тут же фрагмент "чистится", не могу даже отловить, в какой момент отображается список и исчезает, ибо происходит это не внутри метода (тут я видимо вообще чего-то не понимаю). Метод выглядит так:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public void searchRestaurantButtonClick(View view) {
 
    final FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
    ft.detach(fragment);
    ft.attach(fragment);
    ft.commit();
 
    EditText searchEditText = (EditText) findViewById(R.id.searchEditText);
    String searchText = searchEditText.getText().toString();
 
    List<Restaurant> restaurantsList = getRestaurantsList(searchText);
 
    LinearLayout verticalLayout = (LinearLayout) findViewById(R.id.newsFragment);
    for (Restaurant each : restaurantsList) {
        LinearLayout horizontalLayout = new LinearLayout(this);
 
        TextView titleTextView = new TextView(this);
        titleTextView.setText(each.getTitle());
        horizontalLayout.addView(titleTextView);
 
        verticalLayout.addView(horizontalLayout);
    }
}
Если блок с FragmentTransaction закомментировать, то список возвращается и нормально отображается, но, естественно, при повторном запросе там и остается, а результат нового запроса (следующий список) отображается под предыдущим списком. Может кто-то объяснить, в чем подвох? Пробовал также сделать через replace, но тогда при запросе возвращается ошибка:

Java
1
Caused by: java.lang.IllegalStateException: Can't change container ID of fragment FragmentNews{2abadd29 #0 id=0x7f0a0050}: was 2131361872 now 2131361880
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2015, 22:36     Reload Fragment
Посмотрите здесь:

OnActivityResult For Fragment - Программирование Android
Помогите решить проблему. У меня есть ListFragment который отображает фотки из бд и кнопка которая запускает стандартное приложения для...

Работа с Fragment - Программирование Android
Ребят изучаю андройд с недавних пор, дошел до фрагментов, но не особо их понимаю, можете кому не лень норм инфы накидать на эту тему?)

SwipeRefreshLayout + Fragment - Программирование Android
Имеется mainActivity c &lt;android.support.v4.widget.SwipeRefreshLayout ...

Список из fragment - Программирование Android
Гуру, как подобное сделать? ЕСТЬ: Большой LinearLayout в который надо добавлять разные &quot;блоки&quot; Каждый &quot;блок&quot; оформлен как...

Fragment и ListView - Программирование Android
Задача необходимо сделать 2 фрагмента в 1-находится Listview в нем кнопки подгружаемые из файла, во 2 фрагменте описание как сделать так...

Fragment и RoboSpice - Программирование Android
Всем доброго времени суток, возникла проблема при использовании асинхронного запроса с помощью RoboSpice и инициализации фрагмента....

Анимация Fragment - Программирование Android
Здравствуйте, такой вопрос. как прикрутить эту анимацию: &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;alpha ...

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

MapFragment в Fragment - Программирование Android
Как получить MapFragment который находится в Fragment? Сейчас использую такой способ: MapFragment mapFragment =...

Работа с Fragment - Программирование Android
Всем привет. Возникла проблема в ходе написания дипломной работы. Мне надо считать показания датчиков акселерометра и вывести на экран....


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
04.06.2015, 22:40     Reload Fragment #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
gosteev, ну вообще лучше сделать это с помощью ListView. И при изменении данных просто перезагружать адаптер.
gosteev
0 / 0 / 0
Регистрация: 21.02.2014
Сообщений: 35
06.06.2015, 20:04  [ТС]     Reload Fragment #3
Spelcrawler, почитал про ListView, действительно имеет смысл через него делать, посоветовали правда в текущей реализации просто лэйаут вот так очистить:
Java
1
verticalLayout.removeAllViews();
Но в дальнейшем буду походу под ListView переделывать, за что тоже спасибо.
Ответ Создать тему
Опции темы

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