我正在制作一款能够对商品进行排名的Android应用。我已经填充了drag-sort-listview,但是在用户重新排列项目后,如何在数组中返回新订单?
是否必须使用this等光标执行某些操作?
编辑:
如何实现此方法,以便在单击按钮时注销位置数组?此外,我使用的是drag sort listview的默认演示脚本,它使用了listview的片段。我是android的新手,所以我想我理解我需要的部分,而不是如何/在哪里做它们(在MyActivity.java或dslvframent.java中)
MyActivity.java
btn.setOnClickListener(new View.OnClickListener() {
DSLVFragment f =
(DSLVFragment) getSupportFragmentManager().findFragmentByTag(TAG_DSLV_FRAGMENT);
DragSortListView dslv = (DragSortListView) f.getListView();
List<Integer> newOrder = dslv.getCursorPositions();
String positions = Arrays.toString(newOrder);
});
DSLVFragment.java
...
protected void setListAdapter() {
String[] ranking = {"item1","item2","item3"}
List<String> list = new ArrayList<String>(Arrays.asList(ranking));
mAdapter = new ArrayAdapter<String>(getActivity(), getItemLayout(), R.id.text, list);
setListAdapter(mAdapter);
}
...
所有代码都需要在MyActivity.java中,还是dslvfragment.java需要一些?基本上我要求一个关于如何在Bauer演示环境中使用getCursorPositions()的简单示例。我已经在网上搜索了一些例子,但无济于事。
答案 0 :(得分:1)
您可以调用getCursorPositions以获取列表中项目的原始位置列表。因此,如果您将开头列为:
a,b,c,d,e
并将位置更改为
b,d,a,e,c
getCursorPositions将返回
[1,3,0,4,2]
您还可以使用getListPosition(int cursorPosition)在cursorPosition获取项目的新位置。在前面的例子中,getListPosition(2)(其中2对应于&#34; c&#34;)将返回4,如&#34; c&#34;在重新排序的列表中位于第4位。
getCursorPosition将与getListPosition相反。它将获得重新排序列表中项目的原始位置。所以getCursorPosition(4)将返回2.