Android 用户按下排序按钮后,如何在listview中显示已排序的列表?

Android 用户按下排序按钮后,如何在listview中显示已排序的列表?,android,listview,Android,Listview,我正在制作一个简单的Android应用程序来测试排序功能,然后在我将要制作的主要项目中使用它 我想知道,假设我在listview中借助自定义对象和自定义ArrayAdapter向用户显示一个项目列表,我想在那里放置一个排序按钮,该按钮将在运行时根据用户的选择对列表进行排序(例如:按字母顺序,根据评级等) 如何在排序后向用户显示新列表 我应该再次使用setAdapter方法还是有其他方法?如果在适配器中调用notifyDatasetChanged(),您的列表将在屏幕中按正确的顺序重新绘制。:)因

我正在制作一个简单的Android应用程序来测试排序功能,然后在我将要制作的主要项目中使用它

我想知道,假设我在listview中借助自定义对象和自定义ArrayAdapter向用户显示一个项目列表,我想在那里放置一个排序按钮,该按钮将在运行时根据用户的选择对列表进行排序(例如:按字母顺序,根据评级等)

如何在排序后向用户显示新列表


我应该再次使用setAdapter方法还是有其他方法?

如果在适配器中调用
notifyDatasetChanged()
,您的列表将在屏幕中按正确的顺序重新绘制。:)因此,在您订购列表后,当您单击排序按钮时,请调用适配器.notifyDatasetChanged()

在列表上执行排序,然后在下一行写入


它将使用更新(排序)的数据更新您的列表。首先,根据用户的选择对源数据库进行排序(例如:按字母顺序,根据评级等) 例:

列出mData;//您的源数据
//按升序对数据进行排序
Collections.sort(mData);
//使用适配器更新ListView
mArrayAdapter.notifyDataSetChanged();

使用
notifyDatasetChanged()
也许?在对列表进行排序后,只需在适配器上调用
notifyDatasetChanged()
方法,在处理事件后对列表进行排序后,再调用适配器。notifyDatasetChanged()方法?是的,这样适配器将使用新排序的列表重新绘制视图。请注意,您需要对之前传递给适配器的列表进行排序。是的,没错,创建新适配器是一种不好的做法,也是内存浪费。告诉我这是不是工作,好吗?
yourAdapter.notifyDatasetChanged();
List<String> mData; // your source data
// sort your data ascending order
Collections.sort(mData);
// use your adapter to update your ListView
mArrayAdapter.notifyDataSetChanged();