返回drag-sort-listview android中的项目顺序数组

时间:2015-05-20 17:30:11

标签: android sorting android-listview

我正在制作一款能够对商品进行排名的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()的简单示例。我已经在网上搜索了一些例子,但无济于事。

1 个答案:

答案 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.