【问题标题】:Shuffling an Adapter [duplicate]洗牌适配器[重复]
【发布时间】:2013-02-24 09:09:03
【问题描述】:

我正在使用Adapter

final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, android.R.id.text1);

我想改组它的内容,但是我发现Collections.shuffle(adapter); 不起作用。还有另一种方法可以做到这一点吗?同时保持adapter 的格式,即不将其更改为List

【问题讨论】:

  • 你在适配器上洗牌后调用 notifydatasetchanged() 吗?
  • 如果你不想使用 List 你可能不得不自己写一个 shuffle 方法。 Random shuffling of an array in Android?
  • @AalokSharma 适配器不是 Collections.shuffle() 支持的类型
  • 好的@rsayles3 我的评论意味着你在调用 shuffle 之后是否在你的适配器上调用 notifydatasetchanged() ......现在可以理解了吗,你甚至读过你的问题的标题“洗牌适配器” ??

标签: android shuffle android-adapter


【解决方案1】:

当然Collections.shuffle(adapter) 不起作用..shuffle 需要一个 java.util.List...Java Collections API 对 Android API 一无所知...

您需要打乱底层列表,然后告诉适配器数据已更改..类似于:

Collections.shuffle(myList);
adapter.notifyDataSetChanged();

【讨论】:

  • 这是否适用于指定的原始数组?
  • 我没有基础列表,适配器由用户通过文本输入输入字符串手动填充,并且该适配器设置在 ListView
  • @rsayles3 然后您应该将用户输入收集到一个集合中,并以此为基础您的适配器。适配器只能是 MVC 模式中的 V。
猜你喜欢
  • 2017-01-26
  • 2011-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-13
  • 1970-01-01
  • 2017-06-24
相关资源
最近更新 更多