我遇到了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;
}
答案 0 :(得分:0)
看起来像是ArrayAdapter中的一个错误。您可以创建自定义适配器并使其正确。
答案 1 :(得分:0)
正确设置列表视图。删除动画替换,可撤销现金等。