У меня возникла проблема с Android ArrayAdapter
. Первый элемент в списке не в алфавитном порядке. Если я прокручу вниз и прокручу резервную копию, он изменится на другой элемент списка.Первый элемент списка случайно меняется
Почему список не работает?
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
SQLHelper helper = new SQLHelper(getActivity());
SQLiteDatabase db = helper.getWritableDatabase();
View rootView = inflater.inflate(R.layout.song_selector_listview,
container, false);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
R.layout.song_item, listArtists(db));
setListAdapter(adapter);
return rootView;
}
public List<String> listArtists(SQLiteDatabase db) {
List<String> artists = new ArrayList<String>();
Cursor cursor = db.rawQuery("SELECT DISTINCT "
+ SQLHelper.artistCol
+ " FROM "
+ SQLHelper.libraryTable
+ " ORDER BY "
+ SQLHelper.artistCol,
null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
int artistIndex = cursor.getColumnIndex(SQLHelper.artistCol);
artists.add(cursor.getString(artistIndex));
cursor.moveToNext();
}
return artists;
}
Подобные симптомы обычно вызваны ошибками в пользовательском адаптере 'getView()', но поскольку вы используете запас «ArrayAdapter», это не так. Не могли бы вы разместить макет 'song_item'? – laalto
@laalto Я только что понял, что это произошло из-за нулевых значений в моей таблице SQLite. Я заново создал таблицу и убедился, что никакие значения не были добавлены, и, похоже, они сработали. Я не могу ответить на свой вопрос еще 8 часов, поэтому я подумал, что отправлю сюда. – user184994