java-排序我的ArrayAdapter不会更改我的数据源

java-排序我的ArrayAdapter不会更改我的数据源,第1张

概述我有一个奇怪的问题.我有一个正在排序的ArrayAdapter.这将正确显示在屏幕上,但是当我检查实际数据源时,内容尚未排序.如何确保对ListAdapter进行排序也可以对数据源进行排序?Collections.sort(quotes,newPercentChangeComparator());//sortmydatasource(thisisn'tnecessa

我有一个奇怪的问题.我有一个正在排序的ArrayAdapter.这将正确显示在屏幕上,但是当我检查实际数据源时,内容尚未排序.如何确保对listadapter进行排序也可以对数据源进行排序?

Collections.sort(quotes, new PercentChangeComparator()); //sort my data source (this isn't necessary)quotesAdapter.sort(new PercentChangeComparator()); //sort my listadapterToast toast = Toast.makeText(getApplicationContext(),quotes.get(0).getSymbol(), Toast.LENGTH_SHORT);toast.show(); //this shows that my data source hasn't been updated, even though my listadapter presents my ListVIEw in the correctly sorted order.

例如:
如果我的数据源是[10,9,1,20]

排序后,我的ListVIEw将显示[1,9,10,20]

但数据源仍为[10,9,1,20]

我该如何解决?

解决方法:

这是另一回事:对数据源进行排序将对ArrayAdapter进行排序.

我认为您之前已经做过类似的事情.

ArrayList<PercentChangeComparator> quotes = getQuotesFromSomewhere();QuotesAdapter quotesAdapter = new QuotesAdapter(this, R.layout.xxx, quotes);

然后,如果您对引号进行了排序,则通知适配器dataSet已更改,则应对列表进行排序

Collections.sort(quotes, new PercentChangeComparator());quotesAdapter.notifyDataSetChanged();

这对我有用,希望对您有所帮助.

重要的一件事:如果您重新创建源数组(在此特定示例中为引号),则适配器将不会读取进一步的更改.因此,如果您需要修改ListVIEw的内容,请执行以下 *** 作:

quotes.clear();quotes.add(...);quotes.add(...);

另外,请确保正确实现了比较器.如果执行此

Collections.sort(quotes, new PercentChangeComparator());

并且引号未排序,那么问题与适配器无关,而与比较无关.

总结

以上是内存溢出为你收集整理的java-排序我的ArrayAdapter不会更改我的数据源全部内容,希望文章能够帮你解决java-排序我的ArrayAdapter不会更改我的数据源所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1083195.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存