gpt4 book ai didi

android - ListView 显示排序的数据而不是它在数据库中的存储方式

转载 作者:行者123 更新时间:2023-11-30 02:42:07 25 4
gpt4 key购买 nike

我正在根据下面在实现 CursorLoader 的 Fragment 中显示的代码从 数据库 填充我的 ListView em> 早些时候我使用 SimpleCursorAdapter 来达到同样的目的,但由于某些原因我不得不改用 ArrayAdapter

数据库只有两列:

_id(integer primary key autoincrement) and message(string not null)

ListView 工作正常,但问题是 ListView 中显示的字符串自动按字母顺序排序,而不是按存储顺序排序。而我在使用 SimpleCursorAdapter 时没有遇到这个问题。

谁能告诉我这次做错了什么以及如何改正。

@Override
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
String[] projection = {KEY_ROWID, KEY_MESSAGE};
CursorLoader cursorLoader = new CursorLoader(getActivity(),
CONTENT_URI, projection, null, null, null);
return cursorLoader;
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {

if(cursor != null){
msgList = new ArrayList<String>();
cursor.moveToFirst();
while(cursor.isAfterLast() == false){
msgList.add(cursor.getString(1).toString());
cursor.moveToNext();
}
}

mAdapter = new ArrayAdapter<String>(getActivity(), R.layout.msg_list, R.id.list_textView, msgList);
listview.setAdapter(mAdapter);
}

@Override
public void onLoaderReset(Loader<Cursor> arg0) {
if (mAdapter != null)
listview.setAdapter(null);
}

谢谢

最佳答案

数据库中的数据总是以不可预知的顺序获取。
您必须指定要对数据进行排序的列和每列的顺序方向(默认值:ASC)。

尝试使用 CursorLoader(..., KEY_ROWID + "DESC")

关于android - ListView 显示排序的数据而不是它在数据库中的存储方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25613035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com