Много назначений setText и String

У меня много String из json-объектов, например:

city1 = jsonobject.getJSONArray("object").getJSONObject(0).getString("city");

И если значение не является корпусом, я применяю эту строку к текстовому просмотру:

if(city1.equals("")) {
   citylayout.setVisibility(View.GONE);
} else {
prefsmain2.edit().putInt("CITY", city1).commit();
citytxt.setText(city1);
}

У меня есть ~ 60 таких параметров (город, ориентир, регион, страна и т. д.), но я получаю журнал от отладчика:

Хореограф: Пропущено 33 кадра! Приложение может выполнять слишком много работы в своем основном потоке.

Получите значения из AsyncTask и работайте с setText в новом потоке с помощью обработчика, но это бесполезно...


person ironz    schedule 01.08.2014    source источник
comment
проверьте, получаете ли вы JSON в asyncTask ? ... если вы используете Asynctask, обновите textview в onpostexecute!   -  person Devrath    schedule 02.08.2014
comment
Ironz, ответ на ваш вопрос содержится в этом сообщении its-main-thread" title="пропущено 60 кадров, приложение может выполнять слишком много работы в своем основном потоке"> stackoverflow.com/questions/16948937/.   -  person Loures    schedule 02.08.2014


Ответы (1)


Попробуйте использовать пользовательское представление, которое действует как несколько текстовых представлений. Дайте ему все данные сразу и сделайте представление недействительным. Используя этот подход, вы можете избежать многих перерисовок, которые могут вызывать выпадение кадров.

person rupesh jain    schedule 01.08.2014