2013-04-25 2 views
0

Странное поведение, с которым я разорву глаза с раннего утра, я понимаю, но, возможно, у кого-то есть идея (да, я новичок, у некоторых PROBABLY есть идея^^).Android: первая активность запущена

Ситуация:

MainActivity.java (первый один, чтобы назвать только один интерес здесь)

public ExpandableListView listClubs;  

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    listClubs = (ExpandableListView) findViewById(R.id.expLstMainClubs); 
    AppGlobal.CreateDistricts() ; 

    ELVAdapterDistrictsClubs adapter = new ELVAdapterDistrictsClubs(this);  
    listClubs.setAdapter(adapter); 
    } 

это единственный код в классе. В принципе, я заполняю ExpandableList адаптером, который полагается на то, что создано в методе CreateDistricts() (создает бизнес-объекты, районы, содержащие клубы, содержащие участников, события и т. Д.).

В принципе (снова ^^) все работает нормально, при первом запуске ExpList работает так, как ожидалось, а также остальное приложение. Однако, если я нажал кнопку «Назад» из MainActivity и перезапустил приложение, возникло «странное» (по крайней мере) поведение:

ExpList загружается дважды в строку - сначала с данными, работает отлично, и чуть ниже дубликата (с теми же 2 группами, то есть здесь только два округа в моих образцовых данных), который вообще не работает (если вы попытаетесь его расширить, это приведет к сбою приложения).

Откровенно говоря, я потерян - я пробовал некоторые вещи на разных языках [Пауза/Стоп/Разрушение/Старт/Резюме] и т. Д. Безрезультатно (поэтому на этой стороне ничего не сделано, нет переопределить, поскольку, похоже, ничего хорошего не приносит).

Как onCreate после загрузки onDestroy пакета, он должен как можно скорее загрузить ExpList, и в этом случае может возникнуть конфликт между «старыми» группами/дочерними и фактическими (в настоящее время данные имитируется, но потом будет поступать из удаленного источника данных), и я еще не решил, что лучше всего «сохранить» поведение, то есть, если я должен найти способ уничтожить ExpList onDestroy, чтобы быть уверенным, что он на 100% воссоздан (и как это сделать?) и начинать с нуля, или если я могу использовать ExpList как есть, обновляя его содержимое, чтобы не потерять предыдущий выбор. Это может быть неуместно осложнять ситуацию, чтобы сделать это, первый список был не таким большим и довольно быстро использовался для достижения второго действия ...

В любом случае, я подозреваю, что это происходит из-за этой части, нагрузка на пучок после уничтожения и повторного использования, перезагружает ли ExpList как есть, а затем добавляю вещи вместо первого удаления? То, что я сбила с толку, заключается в следующем: следующая операция (просто нажав на один из элементов ExpList) отображает аналогичный ExpList (заполненный месяцами и событиями в месяц для выбранного Клуба) и не представляет такого же странного поведения после уничтожить ... и оба имеют почти идентичную декларацию ExpList в своем исходном XML-макете, так что ... ну, может быть, завтра утром я увижу свет, но если у кого есть идея, не стесняйтесь: D

больше я пишу, тем больше я думаю, что я должен сначала очистить ExpList, но ... я не понимаю, как именно. Я пробовал

listClubs.removeViewsInLayout(0, listClubs.getCount()) ; 

но он просто ничего не делает.

Заранее спасибо

+0

Опубликовать код для 'AppGlobal.CreateDistricts()', то, что он делает, влияет на это поведение, я подозреваю. –

+1

@Steven: точно, как потерять часы на ложной стороне проблемы. что я забыл было НЕ воссоздать содержимое ArrayList в CreateDistricts() .... говорить о том, чтобы быть немым;) – Varkhan

ответ

0

Ничто не связано с Android поведения - я воссоздает каждый раз весь набор BO позади, если базовая ArrayList из округов не было пустой ... вместо того, чтобы просто выйти из метода, но возникает еще один вопрос: как было состояние этого массива ArrayList, которое объявлено в подклассе приложения, служащего в качестве приложения в моем манифесте? Мне нужно будет сделать некоторые тесты об этом ...

Смежные вопросы