Каждое нажатие кнопки изменяет значение логической переменной. В слушателе у вас if(flag). Следовательно, при каждом новом нажатии, выполняются разные блоки инструкций в ветвлении. Таким образом сперва запускается одна анимация, при повторном нажатии запускается вторая анимация и так они чередуются до бесконечности.
Переменная флаг – это, как правило, переменная логического типа, значение которой сигнализирует о состоянии вычислительного процесса.
В вашем случае эта переменная сигнализирует о анимации, которую нужно запустить.
В любом случае вам нужно получить с сервера json и распарсить его.
Вот тут хороший пример: www.androidhive.info/2012/01/android-json-parsing-...