1

У меня есть пользовательский аддтер, который имеет метод public View getView(int position, View convertView, ViewGroup parent).Пользовательский адаптерView вызывает функцию getView несколько раз и обновляет вид списка, что вызывает медленную скорость приложения

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    ObjA obj = mArr.get(position); 
    LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View view; 

    if (convertView == null) { 
     view = new View(mContext); 
     view = inflater.inflate(R.layout.grid_view, null); 

    } else { 
     view = (View) convertView; 
    } 

    // set value into bus_stop_name textView 
       TextView id_label = (TextView) view.findViewById(R.id.txt_ID); 
       TextView direction_label = (TextView) view.findViewById(R.id.txt_Direction); 

       id_label.setText(obj.getId()); // Setting values in view 
       direction_label.setText(obj.getName()); 

       GetTiming getTiming = new GetTiming(mContext, this, obj.getId(), view); 
       getTiming.execute(); 

    return view; 
} 

Этот GetTiming - это AsyncTask, который выбирает время с Parse.com. У меня есть интерфейс, который вызовет метод public void onGetTimings(ArrayList<Timing> timings, View view).

@Override 
public void onGetTimings(ArrayList<Timing> timings, View view) { 

    TextView time = (TextView) view.findViewById(R.id.txt_time); 
    busRouteTime.setText("" + timings.get(0).getTime() + ""); 
} 

Этот метод получает звонок несколько раз. Означает несколько сетевых вызовов. У меня есть другие функции, которые также используют Parse.com. Из-за вызова этого метода снова и снова приложение замедляется. Может ли кто-нибудь предложить другой вариант обновления textView в listItemView?

ответ

1

Можете ли вы создать приложение для извлечения данных из синтаксического анализа, используя один вызов api вместо каждого вызова для каждого элемента строки? (один вызов api для извлечения всех данных из синтаксического анализа ИЛИ выборки первых данных x строк за раз).

Затем создайте модель для хранения извлеченных данных вместе с ответом от разбора. После этого итерации через адаптер.

+0

Да, мне нужно будет вызвать Parse 2 раза, чтобы получить требуемые результаты. Спасибо, я попробую это. –