Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

04.06.2015, 22:36. Просмотров 481. Ответов 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
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2015, 22:36
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Reload Fragment (Программирование Android):

Обновление fragment из другого fragment - Программирование Android
Добрый вечер всем!! Подскажите пожалуйста как обновить один фрагмент из другого (а именно TextView и ArrayAdapter)?

Fragment - Программирование Android
Eсть Activity состоящий из ActionBar в котором две вкладки, каждая из них это Fragment. Не пойму как при переходе ко второй вкладке...

set и get из fragment - Программирование Android
Здравствуйте! Есть 3 таба которые реализованы с помощью fragment. На табах есть кнопки, текстовые поля и т.д. Подскажите пожалуйста, как...

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

DialogFragment в Fragment - Программирование Android
можно ли визивать DialogFragment с Fragment???

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

2
Spelcrawler
531 / 501 / 111
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
04.06.2015, 22:40 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
gosteev, ну вообще лучше сделать это с помощью ListView. И при изменении данных просто перезагружать адаптер.
1
gosteev
0 / 0 / 0
Регистрация: 21.02.2014
Сообщений: 35
06.06.2015, 20:04  [ТС] #3
Spelcrawler, почитал про ListView, действительно имеет смысл через него делать, посоветовали правда в текущей реализации просто лэйаут вот так очистить:
Java
1
verticalLayout.removeAllViews();
Но в дальнейшем буду походу под ListView переделывать, за что тоже спасибо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2015, 20:04
Привет! Вот еще темы с ответами:

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

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

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

WebView in Fragment - Программирование Android
Как использовать WebView во фрагменте? Возвращаются слои в зависимости от номера фрагмента Я их листаю, меняется содержимое,...


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

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

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