2013-03-08 54 views
0

我使用的是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

+0

你叫notifydatasetchanged()? – 2013-03-08 18:12:09

+0

如果你不想使用列表,你可能必须自己写一个shuffle方法。 [随机洗牌的Android中的数组?](http://stackoverflow.com/questions/1519736/random-shuffling-of-an-array-in-android) – Sam 2013-03-08 18:24:42

+0

@AalokSharma适配器是不是支持类型的集合。 shuffle()' – 2013-03-08 18:48:39

回答

1

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

您需要洗牌的基础列表,然后再告诉该数据已经changed..something像适配器:洗牌适配器后

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

这是否与指定的原始数组一起工作? – Sam 2013-03-08 18:20:17

+0

我没有基础列表,适配器由用户通过文本输入输入字符串手动填充,并且该适配器设置在“ListView”中。 – 2013-03-08 18:47:40

+0

@ rsayles3然后,您应该收集用户输入的集合和基础你的适配器。适配器应该只是MVC模式中的V。 – Simon 2013-03-08 18:58:04