Когда я прокручиваю просмотр списка с помощью специального адаптера слишком быстро вверх и вниз, getView () начинает вести себя странно. Зачем?

У меня есть список с пользовательским адаптером массива, который обрабатывает около 15 строк. Стиль каждой строки чередуется (между метками и значениями для этих меток - например, строка 1 может быть «адресом электронной почты», а строка 2 будет фактическим адресом электронной почты). Я изменяю стиль каждой строки таким образом, чтобы она чередовалась в методе getView () arrayadapter. Поэтому, если элемент в текущей позиции является меткой, я изменю стиль с стиля строки по умолчанию (что и применили к ним значения). Когда первый просмотр списка загружается, стилизация идеальна и именно так, как я хочу. Если я прокручиваю список медленно вверх или вниз, он остается таким же. Однако, если я прокручиваю список быстро вверх и вниз, стиль строк значений начинает меняться на стиль меток до тех пор, пока все строки не получат стиль строки меток. Кто-нибудь знает, почему это будет происходить? Я использовал пользовательские адаптеры в других списках в приложении без проблем, подобных этой.

Изменить: Обнаружено, что он также изменяет все строки на стиль метки при изменении портретной и горизонтальной ориентации. Не делает это при изменении ландшафта -> портрета. Ниже адаптер, который я использую. Я что-то пропустил?

public class DetailsAdapter extends ArrayAdapter<String> {

private TextView text = null;
private String item = null;

public DetailsAdapter(Context context, int resource, int textViewResourceId, String[] objects) {
    super(context, resource, textViewResourceId, objects);
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    text = (TextView) super.getView(position, convertView, parent);
    item = getItem(position);
    if (item.equals("Name") || item.equals("Mobile") || item.equals("Home") || item.equals("Email") || item.equals("Address")) {
        text.setBackgroundColor(0xFF575757);
        text.setTextSize(15);
        text.setTypeface(null, Typeface.BOLD);
        text.setPadding(8, 5, 0, 5);
    } else {
        text.setPadding(15, 15, 0, 15);
    }
    return text;
}

@Override
public boolean isEnabled(int position) {
    item = getItem(position);
    if (item.equals("Name") || item.equals("Mobile") || item.equals("Home") || item.equals("Email") || item.equals("Address")) {
        return false;
    } else {
        return true;
    }
}
}

Ответы на вопрос(2)

Ваш ответ на вопрос