Я получаю странную ошибку android java.lang.StackOverflowError
при загрузке записей в моем списке. Это странно в том, что это всегда происходит в третий раз, когда я загружаю свой список.android java.lang.StackOverflowError в listview
Идея заключается в том, что у меня есть карта с множеством маркеров (магазинов). Пользователь может щелкнуть меню -> показать список магазинов, и он получает заполненный список. Затем он может нажать на конкретный магазин в списке, и он получает ту же карту обратно, но тогда магазин сосредоточен. Затем он может повторить те же действия: menu -> show shop list.
На самом деле существует какая-то петля, но пользователь сам решает, хочет ли он ходить (карта -> список -> карта ...), или он может (нажав на контакт) просто выйти ...
Все работает нормально в течение первых 2-х раз ... В третий раз, когда я хочу загрузить список, произойдет сбой приложений.
Log:
02-15 13:10:00.632: E/AndroidRuntime(23826): FATAL EXCEPTION: main
02-15 13:10:00.632: E/AndroidRuntime(23826): java.lang.StackOverflowError
02-15 13:10:00.632: E/AndroidRuntime(23826): at android.view.View.draw(View.java:6880)
02-15 13:10:00.632: E/AndroidRuntime(23826): at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
02-15 13:10:00.632: E/AndroidRuntime(23826): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
02-15 13:10:00.632: E/AndroidRuntime(23826): at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
02-15 13:10:00.632: E/AndroidRuntime(23826): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
02-15 13:10:00.632: E/AndroidRuntime(23826): at android.widget.AbsListView.dispatchDraw(AbsListView.java:1480)
02-15 13:10:00.632: E/AndroidRuntime(23826): at android.widget.ListView.dispatchDraw(ListView.java:3138)
02-15 13:10:00.632: E/AndroidRuntime(23826): at android.view.View.draw(View.java:6986)
Я прочитал много сообщений, что эта ошибка обычно появляется, когда у вас есть бесконечный цикл. Итак, это какая-то андроидная интерпретация: если вы переходите от одной активности к другой несколько раз, она думает, что у вас бесконечный цикл? У меня нет других идей, почему это может случиться. (Еще одна вещь, которую нужно добавить, эти 2 действия находятся на одной и той же вкладке, я имею в виду, что я использую одну и ту же вкладку, но меняю содержимое).
Код для меняющегося содержания:
Tabs s = (Tabs) getParent();
Intent myIntent = new Intent(getApplicationContext(), Map.class);
myIntent.putExtra("playgroundID", playgroundsArrayHolder.ID);
View view = s.getLocalActivityManager().startActivity("map",
myIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
setContentView(view);
EDIT:
я вроде получил его на работу с одним обманом. Я объединил 2 действия в 1 (1 xml - сокрытие компонентов, которые мне не нужны в данный момент). В этом случае мне не нужно перезагружать свою активность каждый раз, когда пользователь ее покидает. Я просто показываю/скрываю компоненты.
Я знаю, что это большой чит, но это единственный способ заставить его работать. Я попытался сделать атрибуты статичными и привязать адаптер к нему, но это не сработало. И проблема на самом деле появилась, когда я устанавливал адаптер в listview.
Любая дополнительная помощь приветствуется. Kind'a не хочет оставаться с 2 видами деятельности в 1:/
ОК, проблема все еще остается. Любая помощь с оценкой
Я протестировал программу двумя простыми действиями (относительные макеты, на которых размещена 1 кнопка), под 1 вкладкой. У каждого из них была связь друг с другом, и он сработал после третьего цикла.
Я иду от одного вида деятельности к другому с помощью следующего кода:
Tabs s = (Tabs) getParent();
Intent myIntent = new Intent(getApplicationContext(), Map.class);
View view = s.getLocalActivityManager().startActivity("map",
myIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
setContentView(view);
Это не имеет значения, что у меня есть макеты в деятельности, в основном это до сих пор выходит из строя каждые 3 цикла.
У меня нет других идей, кроме того, что андроид интерпретирует эту навигацию (от одной активности к другой под той же вкладкой) как инфинитивный цикл? Что в основном пользователи делают, а не цикл, который программируется мной.
проверки, если у вас слишком много вложенных макетов – user936414
вы читали Тхи один? http://stackoverflow.com/questions/4342761/how-do-you-use-intent-flag-activity-clear-top-to-clear-the-activity-stack –
Да, я пытался сделать все с помощью а также добавить все элементы к нему. Это не помогло, тот же самый крах (третий раз) –