У меня есть настроенный BaseAdapter для моего listView с этим кодом:
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null)
{
}
else
{
holder = (ViewHolder) convertView.getTag();
}
convertView = mInflater.inflate(R.layout.user_submissions_customisation, null);
holder = new ViewHolder();
holder.JournalName = (TextView) convertView.findViewById(R.id.JournalName);
holder.SubmissionTitle = (TextView) convertView.findViewById(R.id.SubmissionTitle);
holder.SubmissionDate = (TextView) convertView.findViewById(R.id.SubmissionDate);
holder.statusOk=(ImageView)convertView.findViewById(R.id.statusOkImage);
holder.statusRejected=(ImageView)convertView.findViewById(R.id.statusRejectedImage);
holder.statusProcessing=(ImageView)convertView.findViewById(R.id.statusProcessingImage);
convertView.setTag(holder);
ImageView statusOk=(ImageView)convertView.findViewById(R.id.statusOkImage);
ImageView statusRejected=(ImageView)convertView.findViewById(R.id.statusRejectedImage);
ImageView statusProcessing=(ImageView)convertView.findViewById(R.id.statusProcessingImage);
MDPIActivity mdpi = new MDPIActivity();
Context context =mdpi.getContext();
LocalDatabase localDatabase = new LocalDatabase(context); //Instantiation of the DB
int status = localDatabase.getSubmissionStatus(position+1);
if (status==102 | status==19)
{
statusRejected.setVisibility(View.VISIBLE);
}
else
{
if (status==29)
{
statusOk.setVisibility(View.VISIBLE);
}
else
{
statusProcessing.setVisibility(View.VISIBLE);
}
}
holder.JournalName.setText(submissionsArrayList.get(position).getJournalTitle()+"-"+submissionsArrayList.get(position).getID());
holder.SubmissionTitle.setText(submissionsArrayList.get(position).getTitle());
holder.SubmissionDate.setText(submissionsArrayList.get(position).getDate());
return convertView;
}
static class ViewHolder {
TextView JournalName;
TextView SubmissionTitle;
TextView SubmissionDate;
ImageView statusOk;
ImageView statusRejected;
ImageView statusProcessing;
}
Все работает хорошо, но создание списка на дисплее и прокрутка довольно медленная.Я использовал это и для своего списка:
android:fastScrollEnabled="true"
android:scrollingCache="true"
android:smoothScrollbar="true"
Но представление, изменяющееся с преобладающего представления на представление списка, медленное, и прокрутка списка тоже.