У меня есть пользовательский аддтер, который имеет метод 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?
Да, мне нужно будет вызвать Parse 2 раза, чтобы получить требуемые результаты. Спасибо, я попробую это. –